@@ -328,6 +328,7 @@ void TPathElement::ApplySpecialAttributes() {
328328 VolumeSpaceSSDSystem.Limit = Max<ui64>();
329329 FileStoreSpaceSSD.Limit = Max<ui64>();
330330 FileStoreSpaceHDD.Limit = Max<ui64>();
331+ FileStoreSpaceSSDSystem.Limit = Max<ui64>();
331332 ExtraPathSymbolsAllowed = TString ();
332333 DocumentApiVersion = 0 ;
333334 AsyncReplication = NJson::TJsonValue ();
@@ -355,6 +356,9 @@ void TPathElement::ApplySpecialAttributes() {
355356 case EAttribute::FILESTORE_SPACE_LIMIT_HDD:
356357 HandleAttributeValue (value, FileStoreSpaceHDD.Limit );
357358 break ;
359+ case EAttribute::FILESTORE_SPACE_LIMIT_SSD_SYSTEM:
360+ HandleAttributeValue (value, FileStoreSpaceSSDSystem.Limit );
361+ break ;
358362 case EAttribute::EXTRA_PATH_SYMBOLS_ALLOWED:
359363 HandleAttributeValue (value, ExtraPathSymbolsAllowed);
360364 break ;
@@ -415,16 +419,19 @@ bool TPathElement::CheckVolumeSpaceChange(TVolumeSpace newSpace, TVolumeSpace ol
415419void TPathElement::ChangeFileStoreSpaceBegin (TFileStoreSpace newSpace, TFileStoreSpace oldSpace) {
416420 UpdateSpaceBegin (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD );
417421 UpdateSpaceBegin (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD );
422+ UpdateSpaceBegin (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem );
418423}
419424
420425void TPathElement::ChangeFileStoreSpaceCommit (TFileStoreSpace newSpace, TFileStoreSpace oldSpace) {
421426 UpdateSpaceCommit (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD );
422427 UpdateSpaceCommit (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD );
428+ UpdateSpaceCommit (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem );
423429}
424430
425431bool TPathElement::CheckFileStoreSpaceChange (TFileStoreSpace newSpace, TFileStoreSpace oldSpace, TString& errStr) {
426432 return (CheckSpaceChanged (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD , errStr, " filestore" , " (ssd)" ) &&
427- CheckSpaceChanged (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD , errStr, " filestore" , " (hdd)" ));
433+ CheckSpaceChanged (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD , errStr, " filestore" , " (hdd)" ) &&
434+ CheckSpaceChanged (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem , errStr, " filestore" , " (ssd_system)" ));
428435}
429436
430437void TPathElement::SetAsyncReplica (bool value) {
@@ -443,6 +450,7 @@ bool TPathElement::HasRuntimeAttrs() const {
443450 VolumeSpaceSSDSystem.Allocated > 0 ||
444451 FileStoreSpaceSSD.Allocated > 0 ||
445452 FileStoreSpaceHDD.Allocated > 0 ||
453+ FileStoreSpaceSSDSystem.Allocated > 0 ||
446454 IsAsyncReplica);
447455}
448456
@@ -467,6 +475,7 @@ void TPathElement::SerializeRuntimeAttrs(
467475 // filestore
468476 process (FileStoreSpaceSSD, " __filestore_space_allocated_ssd" );
469477 process (FileStoreSpaceHDD, " __filestore_space_allocated_hdd" );
478+ process (FileStoreSpaceSSDSystem, " __filestore_space_allocated_ssd_system" );
470479
471480 if (IsAsyncReplica) {
472481 auto * attr = userAttrs->Add ();
0 commit comments