Hi Alan,
I think we should align the higher and lower tiers definition. ;-)
This is our resource setup
RES_IMG_Store_01:passthru
└── RES_IMG_Store_PT01:passthru
└── IMG_Store_01:unixfilesystem (Tier 0)
RES_IMG_Store_02:passthru
└── RES_IMG_Store_PT02:passthru
└── IMG_Store_02:unixfilesystem (Tier 1)
RES_IMG_Store_03:passthru
└── IMG_Store_PT03:passthru
└── IMG_Store_03:unixfilesystem (Tier 2)
RES_IMG_Store_04:passthru
└── IMG_Store_PT04:passthru
└── IMG_Store_04:unixfilesystem (Tier 3)
RES_IMG_Store_05:passthru
└── IMG_Store_PT05:passthru
└── IMG_Store_05:unixfilesystem
So by your definition data should go from 0 down to 3 and restage from 3 up to 0? Correct? This is also the behavior we see in general. New files a stored on Tier 0 and then as expected go down to 1,2,3. When we trim tiers 0,1,2 and retrieve data, the restaging of file go into effect. So data is restaged to Tier 0. No problem so far.
But when we change a, existing file on Tier 0 the other tiers (1,2,3) will not recieve the changed files.
With an ILS -L we see that replica's are out of sync.
For example:
ils -L test.txt
rods 0 RES_IMG_Store_01;RES_IMG_Store_PT01;IMG_Store_01 18 2024-05-14.14:37 & test.txt
generic /irods/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
rods 1 RES_IMG_Store_02;RES_IMG_Store_PT02;IMG_Store_02 4 2024-05-14.12:27 X test.txt
generic /data/irods/data/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
rods 2 RES_IMG_Store_03;IMG_Store_PT03;IMG_Store_03 4 2024-05-14.12:27 X test.txt
generic /mtn_NFS_IMG_Cold/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
But if i don't issue a manual replication then the tiers stay out of sync.
For example:
irepl -V -P -S RES_IMG_Store_01 -R RES_IMG_Store_02 /nkiImaging/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
irepl -V -P -S RES_IMG_Store_02 -R RES_IMG_Store_03 /nkiImaging/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
then the files are back in sync again.
ils -L test.txt
rods 0 RES_IMG_Store_01;RES_IMG_Store_PT01;IMG_Store_01 18 2024-05-14.14:37 & test.txt
generic /irods/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
rods 1 RES_IMG_Store_02;RES_IMG_Store_PT02;IMG_Store_02 18 2024-05-14.14:45 & test.txt
generic /data/irods/data/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
rods 2 RES_IMG_Store_03;IMG_Store_PT03;IMG_Store_03 18 2024-05-14.14:45 & test.txt
generic /mtn_NFS_IMG_Cold/home/BioImaging/2024/Backup_CSLM/BIF/jg_bif/2024-05-14/test.txt
If I read you response what i now do manual the storage tiering plugin should be doing for me? Based on the access time AVU?
Now the files are modifies through our ingestion plugin and we still have issues with that but working around that issue by manually adding the accestime avu through the post events.
@staticmethod
def post_data_obj_create(hdlr_mod, logger, session, meta, **options):
epoch_time = str(int(time.time()))
obj.metadata.add("irods::access_time", epoch_time, '')
@staticmethod
def post_data_obj_modify(hdlr_mod, logger, session, meta, **options):
epoch_time = str(int(time.time()))
obj.metadata.set("irods::access_time", epoch_time, '')