@@ -990,32 +990,46 @@ bool DiskIsFull(TEvKeyValue::TEvResponse::TPtr& ev) {
990
990
return !diskIsOk;
991
991
}
992
992
993
+ static std::pair<TKeyPrefix, TKeyPrefix> MakeKeyPrefixRange (TKeyPrefix::EType type, const TPartitionId& partition)
994
+ {
995
+ TKeyPrefix from (type, partition);
996
+ TKeyPrefix to (type, TPartitionId (partition.OriginalPartitionId , partition.WriteId , partition.InternalPartitionId + 1 ));
997
+
998
+ return {std::move (from), std::move (to)};
999
+ }
1000
+
993
1001
static void RequestRange (const TActorContext& ctx, const TActorId& dst, const TPartitionId& partition,
994
1002
TKeyPrefix::EType c, bool includeData = false , const TString& key = " " , bool dropTmp = false ) {
995
1003
THolder<TEvKeyValue::TEvRequest> request (new TEvKeyValue::TEvRequest);
996
- auto read = request->Record .AddCmdReadRange ();
997
- auto range = read ->MutableRange ();
998
- TKeyPrefix from (c, partition);
1004
+
1005
+ auto keyPrefixes = MakeKeyPrefixRange (c, partition);
1006
+ TKeyPrefix& from = keyPrefixes.first ;
1007
+ const TKeyPrefix& to = keyPrefixes.second ;
1008
+
999
1009
if (!key.empty ()) {
1000
1010
Y_ABORT_UNLESS (key.StartsWith (TStringBuf (from.Data (), from.Size ())));
1001
1011
from.Clear ();
1002
1012
from.Append (key.data (), key.size ());
1003
1013
}
1004
- range->SetFrom (from.Data (), from.Size ());
1005
1014
1006
- TKeyPrefix to (c, partition.NextInternalPartitionId ());
1015
+ auto read = request->Record .AddCmdReadRange ();
1016
+ auto range = read ->MutableRange ();
1017
+
1018
+ range->SetFrom (from.Data (), from.Size ());
1007
1019
range->SetTo (to.Data (), to.Size ());
1008
1020
1009
- if (includeData)
1021
+ if (includeData)
1010
1022
read ->SetIncludeData (true );
1011
1023
1012
1024
if (dropTmp) {
1025
+ keyPrefixes = MakeKeyPrefixRange (TKeyPrefix::TypeTmpData, partition);
1026
+ const TKeyPrefix& from = keyPrefixes.first ;
1027
+ const TKeyPrefix& to = keyPrefixes.second ;
1028
+
1013
1029
auto del = request->Record .AddCmdDeleteRange ();
1014
1030
auto range = del->MutableRange ();
1015
- TKeyPrefix from (TKeyPrefix::TypeTmpData, partition);
1016
- range->SetFrom (from.Data (), from.Size ());
1017
1031
1018
- TKeyPrefix to (TKeyPrefix::TypeTmpData, partition. NextInternalPartitionId ());
1032
+ range-> SetFrom (from. Data (), from. Size ());
1019
1033
range->SetTo (to.Data (), to.Size ());
1020
1034
}
1021
1035
0 commit comments