User Tools

Site Tools


plato:cdc.io:tutorials:cat.compare

cat.compare

Overview

Developers frequently need to compare two clusters. Determining the differences between them visually is too error-prone and because the files reside in containers, normal comparison tools are not available. During the catalog process, a cryptographic signature is taken of the contents of each file and these signatures may be used to perform a very fast comparison of the contents of two clusters.

The COMPARE Operation

Listing the catalog's primary contents tells us the clusters available for comparison:

(py11.venv) Ξ» cdc.io cat.list -d nccwork.sqlite3 Cluster Name 0 CybisRelease1 1 NCC.CybisRelease1 2 TH.CybisRelease1

Our task is to determine how far cluster β€œNCC.CybisRelease1” has deviated from the baseline β€œTH.CybisRelease1”.

We invoke the cat.compare subcommand and the following is displayed in less than a second (on most systems):

(py11.venv) Ξ» cdc.io cat.compare -d nccwork.sqlite3 TH.CybisRelease1 NCC.CybisRelease1 There are 29 differences between TH.CybisRelease1 and NCC.CybisRelease1. PLATO File File Type A File Type B Account A Account B Blocks A Blocks B File Copy Mode Cluster A MFN A Cluster B MFN B 0 a0aids1 tutor a tutor a system system 28 28 AUTO(copy in-place) NCC.CybisRelease1 system TH.CybisRelease1 system 1 accountcom tutor a tutor a s0files s0files 42 42 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 2 author group f group f cybdeva cybdeva 28 28 AUTO(copy in-place) NCC.CybisRelease1 system5 TH.CybisRelease1 system5 3 awork account l ---------- awork ---------- 21 0 AUTO(create) TH.CybisRelease1 system5 None None 4 ccobol group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 5 ccrm group f ---------- cybdeva ---------- 14 0 AUTO(create) NCC.CybisRelease1 system None None 6 cfortran group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 7 cnos group f ---------- cybdeva ---------- 35 0 AUTO(create) NCC.CybisRelease1 system None None 8 cnosts group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 9 compass group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 10 cppu group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 11 ctutor group f ---------- cybdeva ---------- 7 0 AUTO(create) NCC.CybisRelease1 system None None 12 cybdeva account l account l cybdeva cybdeva 21 21 AUTO(copy in-place) NCC.CybisRelease1 system4 TH.CybisRelease1 system4 13 cybmods compass e compass e s0sup s0sup 21 21 AUTO(copy in-place) NCC.CybisRelease1 s0stuff TH.CybisRelease1 s0stuff 14 guests group f ---------- cybdeva ---------- 140 0 AUTO(create) NCC.CybisRelease1 system5 None None 15 noscrse1 instruct a ---------- cybdeva ---------- 14 0 AUTO(create) NCC.CybisRelease1 system None None 16 plmcom tutor a tutor a s0files s0files 42 42 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 17 plmods compass e compass e s0sup s0sup 126 126 AUTO(copy in-place) NCC.CybisRelease1 s0stuff TH.CybisRelease1 s0stuff 18 s group f group f system system 7 7 AUTO(copy in-place) NCC.CybisRelease1 system TH.CybisRelease1 system 19 s0file tutor a tutor a s0files s0files 14 14 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 20 s0files account l account l s0files s0files 21 21 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 21 s0sysfile tutor a tutor a s0files s0files 70 70 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 22 s0sysmsg gnotes i gnotes i system system 70 70 AUTO(copy in-place) NCC.CybisRelease1 system TH.CybisRelease1 system 23 sysfile tutor a tutor a s0files s0files 126 126 AUTO(copy in-place) NCC.CybisRelease1 s0files TH.CybisRelease1 s0files 24 system account l account l system system 21 21 AUTO(copy in-place) NCC.CybisRelease1 system TH.CybisRelease1 system 25 thc group f ---------- awork ---------- 14 0 AUTO(create) TH.CybisRelease1 system2 None None 26 tutorlang tutor a ---------- awork ---------- 70 0 AUTO(create) TH.CybisRelease1 system5 None None 27 tutplm plmcurr h ---------- cybdeva ---------- 126 0 AUTO(create) NCC.CybisRelease1 system None None 28 wsbatch compass e ---------- cybdeva ---------- 126 0 AUTO(create) NCC.CybisRelease1 system None None

29 Differences were found.

Analyzing the Output

Just because two files differ doesn't tell us enough. Unless we specifically understand the contents of the file in question, β€œbeing different” doesn't indicate whether the differences are desireable or not.

In the list above, item 0 a0aids1 contains different block types:

  • source
  • common
  • llist
  • text

Commons can be very volatile and may be the reason for the discrepancy between the two clusters.

In this case inspecting the LAST EDITED dates of the blocks may be more informative.

Likewise, other files can be quite volatile, especially system files such as:

  • Special Files
    • accountcom
    • plmcom
    • s0file
    • s0files
    • s0sysfile
    • sysfile
  • Group Files
  • Notes Files
  • Account Files
  • Datasets
  • Namesets

Therefore, process of elimination tells us that the most likely changes between these two systems were the files not present on the TH.CybisRelease1, added to the NCC.CybisRelease1 distribution:

  • Account File
    • awork
  • Groups Files
    • ccobol
    • ccrm
    • cfortran
    • cnos
    • cnosts
    • compass
    • cppu
    • ctutor
    • guests
    • thc
  • Instructor File
    • noscrse1
  • PLM1) Curriculum File
    • tutplm
  • TUTOR File
    • tutorlang
  • Compass File
    • wsbatch

Other Information

The report also provides side-by-side comparison between the corresponding files and attempts to make recommendations regarding the possibility of copying the file using cdc.io.

Attributes Displayed

  • PLATO File Type
  • Account of Residence
  • Number of BLOCKS 2) allocated to the file.
  • Masterfile (NOS File) of residence
See the article Copy Modes for guidance regarding the dangers of copying to a live system.

Success

Congratulations!

You have now successfully compared the contents of two clusters!

1)
PLATO Learning Management
2)
There are 7, 320-word blocks, per Lesson Part
plato/cdc.io/tutorials/cat.compare.txt Β· Last modified: 2024/05/15 09:23 by 167.206.11.20