Skip to content

Commit

Permalink
merge to stable-23-3 (#878)
Browse files Browse the repository at this point in the history
* issue-539: extract writedata actor into separate location + add TABLET_VERIFY for ReleaseCollectBarrier (#790)

issue-539: extract writedata actor into separate location + add TABLET_VERIFY for ReleaseCollectBarrier

* fix arcadia build: trailing EOL (#808)

* issue-539: add tablet-side two-stage writes support for scaling throughput (#707)

issue-539: add two-stage writes for scaling throughput

* issue-539: add service-side two-stage writes support for scaling throughput (#807)

issue-539: add service-side two-stage writes support

* fix cmake build
  • Loading branch information
debnatkh authored Apr 3, 2024
1 parent 5f33353 commit d646bc7
Show file tree
Hide file tree
Showing 54 changed files with 2,407 additions and 251 deletions.
12 changes: 12 additions & 0 deletions cloud/filestore/config/storage.proto
Original file line number Diff line number Diff line change
Expand Up @@ -231,4 +231,16 @@ message TStorageConfig
optional uint32 CleanupThresholdAverage = 342;
// Enables the aforementioned threshold.
optional bool NewCleanupEnabled = 343;

// Enables GenerateBlobIds + WriteBlob + AddData instead of WriteBlob
// for writing.
optional bool ThreeStageWriteEnabled = 344;

// When issuing blob ids, the tablet acquires a collect barrier. In order
// to release it in case of a client disconnect, this timeout is used.
optional uint32 GenerateBlobIdsReleaseCollectBarrierTimeout = 345;

// If ThreeStageWriteEnabled is true, writes that exceed this threshold
// will use the three-stage write path. Similar to WriteBlobThreshold
optional uint32 ThreeStageWriteThreshold = 346;
}
2 changes: 1 addition & 1 deletion cloud/filestore/libs/storage/api/service.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ namespace NCloud::NFileStore::NStorage {
xxx(ReleaseLock, __VA_ARGS__) \
xxx(TestLock, __VA_ARGS__) \
\
xxx(WriteData, __VA_ARGS__) \
xxx(AllocateData, __VA_ARGS__) \
// FILESTORE_SERVICE_REQUESTS_HANDLE

#define FILESTORE_SERVICE_REQUESTS_NO_HANDLE(xxx, ...) \
xxx(WriteData, __VA_ARGS__) \
xxx(ReadData, __VA_ARGS__) \
// FILESTORE_SERVICE_REQUESTS_NO_HANDLE

Expand Down
8 changes: 8 additions & 0 deletions cloud/filestore/libs/storage/api/tablet.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ namespace NCloud::NFileStore::NStorage {
xxx(ChangeStorageConfig, __VA_ARGS__) \
xxx(DescribeData, __VA_ARGS__) \
xxx(DescribeSessions, __VA_ARGS__) \
xxx(GenerateBlobIds, __VA_ARGS__) \
xxx(AddData, __VA_ARGS__) \
// FILESTORE_TABLET_REQUESTS

////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -65,6 +67,12 @@ struct TEvIndexTablet
EvDescribeSessionsRequest = EvBegin + 17,
EvDescribeSessionsResponse,

EvGenerateBlobIdsRequest = EvBegin + 19,
EvGenerateBlobIdsResponse,

EvAddDataRequest = EvBegin + 21,
EvAddDataResponse,

EvEnd
};

Expand Down
6 changes: 6 additions & 0 deletions cloud/filestore/libs/storage/core/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,17 @@ namespace {
NCloud::NProto::AUTHORIZATION_IGNORE )\
\
xxx(TwoStageReadEnabled, bool, false )\
xxx(ThreeStageWriteEnabled, bool, false )\
xxx(ThreeStageWriteThreshold, ui32, 64_KB )\
xxx(EntryTimeout, TDuration, TDuration::Zero() )\
xxx(NegativeEntryTimeout, TDuration, TDuration::Zero() )\
xxx(AttrTimeout, TDuration, TDuration::Zero() )\
xxx(MaxOutOfOrderCompactionMapLoadRequestsInQueue, ui32, 5 )\
xxx(MaxBackpressureErrorsBeforeSuicide, ui32, 1000 )\
\
xxx(GenerateBlobIdsReleaseCollectBarrierTimeout, \
TDuration, \
TDuration::Seconds(10) )\
// FILESTORE_STORAGE_CONFIG

#define FILESTORE_DECLARE_CONFIG(name, type, value) \
Expand Down
4 changes: 4 additions & 0 deletions cloud/filestore/libs/storage/core/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,8 @@ class TStorageConfig
NCloud::NProto::EAuthorizationMode GetAuthorizationMode() const;

bool GetTwoStageReadEnabled() const;
bool GetThreeStageWriteEnabled() const;
ui32 GetThreeStageWriteThreshold() const;
TDuration GetEntryTimeout() const;
TDuration GetNegativeEntryTimeout() const;
TDuration GetAttrTimeout() const;
Expand All @@ -191,6 +193,8 @@ class TStorageConfig

ui32 GetMaxBackpressureErrorsBeforeSuicide() const;

TDuration GetGenerateBlobIdsReleaseCollectBarrierTimeout() const;

void Dump(IOutputStream& out) const;
void DumpHtml(IOutputStream& out) const;
void DumpOverridesHtml(IOutputStream& out) const;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,6 @@ target_sources(filestore-libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_pingsession.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_statfs.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_update_stats.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_writedata.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_state.cpp
)
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,6 @@ target_sources(filestore-libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_pingsession.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_statfs.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_update_stats.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_writedata.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_state.cpp
)
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,6 @@ target_sources(filestore-libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_readdata.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_statfs.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_update_stats.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_writedata.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_state.cpp
)
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,6 @@ target_sources(filestore-libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_pingsession.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_statfs.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_update_stats.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_actor_writedata.cpp
${CMAKE_SOURCE_DIR}/cloud/filestore/libs/storage/service/service_state.cpp
)
Loading

0 comments on commit d646bc7

Please sign in to comment.