Skip to main content

1E 23.7 (SaaS)

Resolving Remote Differential Compression (RDC) issues

Remote Differential Compression (RDC) is sometimes known as binary differential replication or binary deltas but is more commonly known as remote differential compression (RDC) integration, for details refer to https://docs.microsoft.com/en-us/previous-versions/windows/desktop/rdc/about-remote-differential-compression.

For details about how Nomad integrates with RDC refer to Remote differential compression (RDC) integration.

Considerations when working with RDC

Considerations when working with Remote Differential Compression (RDC) issues:

Consideration

Notes

Configuration Manager 2012

On Configuration Manager 2012, RDC will not be used for Applications. This is because an Application's content version always remains at 1, only the content revision gets updated with a new content ID and hence RDC for Applications will not occur. This is not a limitation of Nomad, but simply the way the Application model is implemented in Configuration Manager 2012.

LSZ generation

The NomadBranch service skips RDC calculations while generating LSZ of a package for which LSZ of version n-1 has not been generated earlier or if the LSZgen request is for the first version of the package.

Nomad only performs binary differential replication (BDR) for packages that are 1 version different (N-1) from the cached version. If the content is at version 3 and the client retrieving content has version 1 in cache, the client will retrieve the entire package. This sounds like a big caveat, but chances are that when Nomad goes to get the content there will be a peer in the local site that has it already, so the package will not be transferred across the WAN link. Also, if the device doesn’t have the N-1 version and another device in the site does have the N-1 version, that content will be retrieved from the peer and only the delta content will be retrieved from the DP. In the event that it did have to traverse the WAN, Nomad will never step on your business traffic.

For more information refer to http://www.1e.com/blogs/2014/09/01/nomad-and-binary-differential-replication/

Elected master on a subnet

RDC is between the DP and the elected master only in a subnet. The remaining devices or peers in the subnet will copy all the blocks of files modified in the package using normal P2P or local multicast. RDC_alt copy takes place when the elected master does not have the previous version of the package but another device on the subnet has it. The elected master can still do RDC file copy by copying the required blocks using RDC_alt copy from the other device on the subnet.

Packages over 125MB in size

Nomad automatically performs BDR functionality for packages over 125MB in size. Packages smaller than this do not benefit from BDR.

The state of the NomadBranch log when things are working

The state of the NomadBranch log when things are working as illustrated by the client and DP logs.

Client log

The Nomad client has to download version 50 of the package and it has set RDC previous version to 49 which must be present in order for RDC to work:

05-12-2016 18:27:24       WARNING: stale ELD P010051E(49)           Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       LM16294 caching "http://1ETRAINCMPRI.1ETRAIN.lOCAL/SMS_DP_SMSPKG$/P010051E" to "C:\ProgramData\1E\NomadBranch\P010051E_Cache"  Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       CopyLoop started. PackageID: P010051E(50), PackageSource: http://1ETRAINCMPRI.1ETRAIN.lOCAL/SMS_DP_SMSPKG$/P010051E, CachePath: C:\ProgramData\1E\NomadBranch\P010051E_Cache      Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       Setting RDC prev Version=49      Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       PkgCacheStatusExtra P010051E(50) was 49           Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       PkgCacheStatusExtra2 P010051E(50) was 49        Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       WARNING: CalcPercent version changed local=49 required=50    Copy_P010051E(50)        8644 (0x21C4)
05-12-2016 18:27:24       RequestElection "P010051E"(50) - Startup            Copy_P010051E(50)        8644 (0x21C4)
DP log

Nomad logging events while it is generating LSZ file for version 50 with CRC and RDC. And it could find that RDC for LSZ version 49 was already processed:

05-12-2016 18:27:27       Generating "P010051E_50.LsZ" from SIS location D:\SCCMContentLib\P010051E with hash 800C8C13CC3DBE5EEDF5C6625E99B5BCE9F2825C7057CB9FE82E6394A462DBB9                LSZwork_P010051E(50)                15084 (0x3AEC)
05-12-2016 18:27:27       Generating List LSZFILES\P010051E_50.LsZ with CRCs and with RDCdata from P010051E.50                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       RDC: Processed previous version LSZ (P010051E_49.LsZ) - OK       LSZwork_P010051E(50)                15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "install - Original.xml" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\install - Original.xml.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "Install.bat" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\Install.bat.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "install.xml" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\install.xml.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "setup.exe" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\setup.exe.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "uninstall.xml" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\uninstall.xml.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
05-12-2016 18:27:27       Comparing \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.49.tar \\?\C:\ProgramData\1E\NomadBranch\LSZfiles\TarFiles\P010051E.50.tar for "Office\Data\v32.cab" to "\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\RDCdata\P010051E_49_50\Office\Data\v32.cab.needs.bin"                LSZwork_P010051E(50) 15084 (0x3AEC)
The state of the NomadBranch log when it cannot find the previous version

The state of the NomadBranch log when it cannot find the previous version as illustrated by the client and DP logs.

Client log

Client log at 10:00: Client tried to download the content P010051E(42) from DP 1ETRAINCMPRI.1ETRAIN.lOCAL.

18-11-2016 10:01:37       Starting TransferFile 0.000% blks=34945 (F=)       Copy_P010051E(42)        6336 (0x18C0)
18-11-2016 10:01:37       Nomad Branch event Evt_StartedCopy :  HTTP from http://1ETRAINCMPRI.1ETRAIN.lOCAL/SMS_DP_SMSPKG$/P010051E for P010051E               Copy_P010051E(42)                6336 (0x18C0)
DP log

DP log: DP also received the LSZ gen request but could not find the previous version because it could not find the previous version 41 of this package, so it downloaded version 42 from the DP.

18-11-2016 10:00:55       Generating "P010051E_42.LsZ" from SIS location D:\SCCMContentLib\P010051E with hash 3A0C6CAD223B5B244D8AF3CAE1C127B916699F91AD4D8D57B7EE69B2980FE834              LSZwork_P010051E(42)
18-11-2016 10:00:55       Generating List LSZFILES\P010051E_42.LsZ with CRCs and with RDCdata from P010051E.42                LSZwork_P010051E(42) 5472 (0x1560)
18-11-2016 10:00:55       No RDC: Cannot find previous version LSZ (\\?\C:\ProgramData\1E\NomadBranch\LSZFILES\P010051E_41.LsZ) - The system cannot find the file specified                LSZwork_P010051E(42) 5472 (0x1560)
Considerations when resolving RDC issues

When resolving RDC issues, you should:

  • Ensure that RDC installed on the site server and on any Branch Distribution Points (BDP), the Nomad client does not need RDC on it

  • Select the Binary Differential Replication checkbox in the properties of any package for which you want to use BDR

  • Ensure that the RDC content are one version different from the cached version

  • Ensure that the content size is more than 125 MB, packages smaller than this do not benefit from BDR

  • Check where the SMSSIG$ folder is on the DP and compare it with the path in the Nomad registry setting HKLM\Softwares\1E\Nomad\SigsFolder. If it is not set, Nomad assumes that signature files location as C:\SMSSIG$, if it exists.