what does the ReplicaKeyMap mean? RRS feed

  • General discussion

  • What is the "ReplicaKeyMap" exactly?

    Source ReplicaKeyMap: [(0:fa87f57fec62442c90e1a514b0028bb1) (1:2042b0bd67ce47b180e345ecbc422c8b) (2:c2c73a13811042a18cf24a622e737021) (3:5e750feec9414e26a2a90813ab3c2cc7) (4:25a7663d323249c5a8ad314942d0bf2e) (5:817f1908ecf54a2d9e917942424e7557) (6:41d87f9f851047998e1a862495724c2d) (7:273aa87ecae84f2b884972ceb95966ac) (8:909c00bfd46a49c2b609561216694105) (9:751b0baf93ef4a9cb95f4012561d743f) (10:1fa7fbf554244aeeaa339032862e37b2) (11:2cc7b7a47ca34355a0f8190e85b05df9) (12:a5264a00d65d457f82586c0177ba0086) (13:62f4c85c8fe6478586d966c65e67b894)]

    ScopeRangeSet: [00:[(0:38500537) (1:36605975) (2:32872073) (3:24808776) (4:19070052) (5:19506052) (6:19466052) (7:25629507) (8:25401954) (9:30643004) (10:30379550) (11:36261892) (12:36307637)]]

    Destination ReplicaKeyMap: [(0:fa87f57fec62442c90e1a514b0028bb1) (1:2042b0bd67ce47b180e345ecbc422c8b) (2:c2c73a13811042a18cf24a622e737021) (3:5e750feec9414e26a2a90813ab3c2cc7) (4:25a7663d323249c5a8ad314942d0bf2e) (5:817f1908ecf54a2d9e917942424e7557) (6:41d87f9f851047998e1a862495724c2d) (7:273aa87ecae84f2b884972ceb95966ac) (8:909c00bfd46a49c2b609561216694105) (9:751b0baf93ef4a9cb95f4012561d743f) (10:1fa7fbf554244aeeaa339032862e37b2) (11:2cc7b7a47ca34355a0f8190e85b05df9) (12:a5264a00d65d457f82586c0177ba0086) (13:62f4c85c8fe6478586d966c65e67b894)]

    ScopeRangeSet: [00:[(1:36608073) (2:32872073) (3:24808776) (4:19070052) (5:19506052) (6:19466052) (7:25629507) (8:25401954) (9:30643004) (10:30379550) (11:36261892) (12:36307637) (13:38512031)]

    Thanks a lot,


    Get reply from social.microsoft

    Friday, August 3, 2012 2:56 AM

All replies

  • you dont wanna be messing up with that as that forms part of the sync knowledge.

    replicas are copies and that replica key map is used to keep track of the replicas that has synched with a scope. instead of using the long guid inside the sync knowledge, they map the replica guids to an int counterpart.

    the scoperangeset stores watermarks for each replica.

    in your case, you have 13 peers synching?

    Friday, August 3, 2012 3:20 AM
  • I just have 2 peers in my case, but the database was restored from lab

    So how can I know which one is the destination replica Id in my case?

    (1:36608073): is it the timestamp for peer 1?

    (1:2042b0bd67ce47b180e345ecbc422c8b): is it the knowledge for peer1

    Do you remmerber the issue: http://social.microsoft.com/Forums/en/syncdevdiscussions/thread/518646ca-28c0-4cf9-a089-0373f3f49f65

    I am still working on it,

    And I decompile the code,

    I found that the @upperBoundTS for the delete statement is the max value between 
    ForgottenKnowledge.FindMinTickCountForReplica(handler.ScopeSyncId)) and 
    the value from 

    SELECT @maxTS = MAX([local_update_peer_timestamp]) FROM [POSSync].[RBOTRANSACTIONPAYMENTTRANS_tracking] WHERE DATEDIFF(dd, [last_change_datetime], GETDATE()) >= @retInDays AND [local_update_peer_timestamp] <= @upperBoundTS AND [sync_row_is_tombstone] = 1

    So I am worry about there is something wrong with the ForgottenKnowledge

    Thanks a lot



    Get reply from social.microsoft

    Friday, August 3, 2012 3:31 AM
  • lookup the scope_id column value in the scope_info table, then you can use that to find the corresponding entry in the replica key mapping

    i was going to ask you on the other thread actually if the database has been restored and if you did post restore fixup on it whenever you restore...

    Friday, August 3, 2012 3:43 AM
  • Yes, I execute restore fixup whenever I restore.

    And sometimes, the performCleanUp works well, clean up the metadata before the retention days, but most of time it clean up all metadata

    it confuses me....

    Get reply from social.microsoft

    Friday, August 3, 2012 4:01 AM