@@ -312,6 +312,7 @@ void TPathElement::ApplySpecialAttributes() {
312312 VolumeSpaceSSDSystem.Limit = Max<ui64>();
313313 FileStoreSpaceSSD.Limit = Max<ui64>();
314314 FileStoreSpaceHDD.Limit = Max<ui64>();
315+ FileStoreSpaceSSDSystem.Limit = Max<ui64>();
315316 ExtraPathSymbolsAllowed = TString ();
316317 DocumentApiVersion = 0 ;
317318 AsyncReplication = NJson::TJsonValue ();
@@ -339,6 +340,9 @@ void TPathElement::ApplySpecialAttributes() {
339340 case EAttribute::FILESTORE_SPACE_LIMIT_HDD:
340341 HandleAttributeValue (value, FileStoreSpaceHDD.Limit );
341342 break ;
343+ case EAttribute::FILESTORE_SPACE_LIMIT_SSD_SYSTEM:
344+ HandleAttributeValue (value, FileStoreSpaceSSDSystem.Limit );
345+ break ;
342346 case EAttribute::EXTRA_PATH_SYMBOLS_ALLOWED:
343347 HandleAttributeValue (value, ExtraPathSymbolsAllowed);
344348 break ;
@@ -399,16 +403,19 @@ bool TPathElement::CheckVolumeSpaceChange(TVolumeSpace newSpace, TVolumeSpace ol
399403void TPathElement::ChangeFileStoreSpaceBegin (TFileStoreSpace newSpace, TFileStoreSpace oldSpace) {
400404 UpdateSpaceBegin (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD );
401405 UpdateSpaceBegin (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD );
406+ UpdateSpaceBegin (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem );
402407}
403408
404409void TPathElement::ChangeFileStoreSpaceCommit (TFileStoreSpace newSpace, TFileStoreSpace oldSpace) {
405410 UpdateSpaceCommit (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD );
406411 UpdateSpaceCommit (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD );
412+ UpdateSpaceCommit (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem );
407413}
408414
409415bool TPathElement::CheckFileStoreSpaceChange (TFileStoreSpace newSpace, TFileStoreSpace oldSpace, TString& errStr) {
410416 return (CheckSpaceChanged (FileStoreSpaceSSD, newSpace.SSD , oldSpace.SSD , errStr, " filestore" , " (ssd)" ) &&
411- CheckSpaceChanged (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD , errStr, " filestore" , " (hdd)" ));
417+ CheckSpaceChanged (FileStoreSpaceHDD, newSpace.HDD , oldSpace.HDD , errStr, " filestore" , " (hdd)" ) &&
418+ CheckSpaceChanged (FileStoreSpaceSSDSystem, newSpace.SSDSystem , oldSpace.SSDSystem , errStr, " filestore" , " (ssd_system)" ));
412419}
413420
414421void TPathElement::SetAsyncReplica (bool value) {
@@ -423,6 +430,7 @@ bool TPathElement::HasRuntimeAttrs() const {
423430 VolumeSpaceSSDSystem.Allocated > 0 ||
424431 FileStoreSpaceSSD.Allocated > 0 ||
425432 FileStoreSpaceHDD.Allocated > 0 ||
433+ FileStoreSpaceSSDSystem.Allocated > 0 ||
426434 IsAsyncReplica);
427435}
428436
@@ -447,6 +455,7 @@ void TPathElement::SerializeRuntimeAttrs(
447455 // filestore
448456 process (FileStoreSpaceSSD, " __filestore_space_allocated_ssd" );
449457 process (FileStoreSpaceHDD, " __filestore_space_allocated_hdd" );
458+ process (FileStoreSpaceSSDSystem, " __filestore_space_allocated_ssd_system" );
450459
451460 if (IsAsyncReplica) {
452461 auto * attr = userAttrs->Add ();
0 commit comments