aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/logger
diff options
context:
space:
mode:
authorsskvor <sskvor@yandex-team.ru>2022-02-10 16:48:04 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:48:04 +0300
commit75abffb472365d28bd0a019db1a54cb32a6100dd (patch)
tree09a7f042da3da3e074e6dd6f7e5305a92eb2321a /library/cpp/logger
parentb228f91bb45c3cb95fcd861c424bb3de0fd356f2 (diff)
downloadydb-75abffb472365d28bd0a019db1a54cb32a6100dd.tar.gz
Restoring authorship annotation for <sskvor@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/logger')
-rw-r--r--library/cpp/logger/all.h2
-rw-r--r--library/cpp/logger/sync_page_cache_file.cpp250
-rw-r--r--library/cpp/logger/sync_page_cache_file.h38
-rw-r--r--library/cpp/logger/ya.make2
4 files changed, 146 insertions, 146 deletions
diff --git a/library/cpp/logger/all.h b/library/cpp/logger/all.h
index ee1666844ef..e7530f17715 100644
--- a/library/cpp/logger/all.h
+++ b/library/cpp/logger/all.h
@@ -6,4 +6,4 @@
#include "stream.h"
#include "thread.h"
#include "system.h"
-#include "sync_page_cache_file.h"
+#include "sync_page_cache_file.h"
diff --git a/library/cpp/logger/sync_page_cache_file.cpp b/library/cpp/logger/sync_page_cache_file.cpp
index a0e93a78d7e..c767b8d75d8 100644
--- a/library/cpp/logger/sync_page_cache_file.cpp
+++ b/library/cpp/logger/sync_page_cache_file.cpp
@@ -1,125 +1,125 @@
-#include "sync_page_cache_file.h"
-#include "record.h"
-
-#include <util/generic/buffer.h>
-#include <util/system/file.h>
-#include <util/system/info.h>
-#include <util/system/mutex.h>
-#include <util/system/rwlock.h>
-#include <util/system/align.h>
-
-class TSyncPageCacheFileLogBackend::TImpl: public TNonCopyable {
-public:
- TImpl(const TString& path, size_t maxBufferSize, size_t maxPendingCacheSize)
- : File_{OpenFile(path)}
- , MaxBufferSize_{maxBufferSize}
- , MaxPendingCacheSize_{maxPendingCacheSize}
- , Buffer_{maxBufferSize}
- {
- ResetPtrs();
- }
-
- ~TImpl() noexcept {
- try {
- Write();
- FlushSync(GuaranteedWrittenPtr_, WrittenPtr_);
- } catch (...) {
- }
- }
-
- void WriteData(const TLogRecord& rec) {
- TGuard guard{Lock_};
-
- Buffer_.Append(rec.Data, rec.Len);
- if (Buffer_.size() >= MaxBufferSize_) {
- const i64 prevAlignedEndPtr = PageAlignedWrittenPtr_;
- Write();
-
- if (prevAlignedEndPtr < PageAlignedWrittenPtr_) {
- FlushAsync(prevAlignedEndPtr, PageAlignedWrittenPtr_);
- }
-
- const i64 minPendingCacheOffset = PageAlignedWrittenPtr_ - MaxPendingCacheSize_;
- if (minPendingCacheOffset > GuaranteedWrittenPtr_) {
- FlushSync(GuaranteedWrittenPtr_, minPendingCacheOffset);
- }
- }
- }
-
- void ReopenLog() {
- TGuard guard{Lock_};
-
- Write();
- FlushSync(GuaranteedWrittenPtr_, WrittenPtr_);
-
- File_.LinkTo(OpenFile(File_.GetName()));
-
- ResetPtrs();
- }
-
-private:
- void ResetPtrs() {
- WrittenPtr_ = File_.GetLength();
- PageAlignedWrittenPtr_ = AlignDown(WrittenPtr_, GetPageSize());
- GuaranteedWrittenPtr_ = WrittenPtr_;
- }
-
- static TFile OpenFile(const TString& path) {
- return TFile{path, OpenAlways | WrOnly | ForAppend | Seq | NoReuse};
- }
-
- static i64 GetPageSize() {
- static const i64 pageSize = NSystemInfo::GetPageSize();
- Y_ASSUME(IsPowerOf2(pageSize));
- return pageSize;
- }
-
- void Write() {
- File_.Write(Buffer_.Data(), Buffer_.Size());
- WrittenPtr_ += Buffer_.Size();
- PageAlignedWrittenPtr_ = AlignDown(WrittenPtr_, GetPageSize());
- Buffer_.Clear();
- }
-
- void FlushAsync(const i64 from, const i64 to) {
- File_.FlushCache(from, to - from, /* wait = */ false);
- }
-
- void FlushSync(const i64 from, const i64 to) {
- const i64 begin = AlignDown(from, GetPageSize());
- const i64 end = AlignUp(to, GetPageSize());
- const i64 length = end - begin;
-
- File_.FlushCache(begin, length, /* wait = */ true);
- File_.EvictCache(begin, length);
-
- GuaranteedWrittenPtr_ = to;
- }
-
-private:
- TMutex Lock_;
- TFile File_;
-
- const size_t MaxBufferSize_ = 0;
- const size_t MaxPendingCacheSize_ = 0;
-
- TBuffer Buffer_;
- i64 WrittenPtr_ = 0;
- i64 PageAlignedWrittenPtr_ = 0;
- i64 GuaranteedWrittenPtr_ = 0;
-};
-
-TSyncPageCacheFileLogBackend::TSyncPageCacheFileLogBackend(const TString& path, size_t maxBufferSize, size_t maxPengingCacheSize)
- : Impl_(MakeHolder<TImpl>(path, maxBufferSize, maxPengingCacheSize))
-{}
-
-TSyncPageCacheFileLogBackend::~TSyncPageCacheFileLogBackend() {
-}
-
-void TSyncPageCacheFileLogBackend::WriteData(const TLogRecord& rec) {
- Impl_->WriteData(rec);
-}
-
-void TSyncPageCacheFileLogBackend::ReopenLog() {
- Impl_->ReopenLog();
-}
+#include "sync_page_cache_file.h"
+#include "record.h"
+
+#include <util/generic/buffer.h>
+#include <util/system/file.h>
+#include <util/system/info.h>
+#include <util/system/mutex.h>
+#include <util/system/rwlock.h>
+#include <util/system/align.h>
+
+class TSyncPageCacheFileLogBackend::TImpl: public TNonCopyable {
+public:
+ TImpl(const TString& path, size_t maxBufferSize, size_t maxPendingCacheSize)
+ : File_{OpenFile(path)}
+ , MaxBufferSize_{maxBufferSize}
+ , MaxPendingCacheSize_{maxPendingCacheSize}
+ , Buffer_{maxBufferSize}
+ {
+ ResetPtrs();
+ }
+
+ ~TImpl() noexcept {
+ try {
+ Write();
+ FlushSync(GuaranteedWrittenPtr_, WrittenPtr_);
+ } catch (...) {
+ }
+ }
+
+ void WriteData(const TLogRecord& rec) {
+ TGuard guard{Lock_};
+
+ Buffer_.Append(rec.Data, rec.Len);
+ if (Buffer_.size() >= MaxBufferSize_) {
+ const i64 prevAlignedEndPtr = PageAlignedWrittenPtr_;
+ Write();
+
+ if (prevAlignedEndPtr < PageAlignedWrittenPtr_) {
+ FlushAsync(prevAlignedEndPtr, PageAlignedWrittenPtr_);
+ }
+
+ const i64 minPendingCacheOffset = PageAlignedWrittenPtr_ - MaxPendingCacheSize_;
+ if (minPendingCacheOffset > GuaranteedWrittenPtr_) {
+ FlushSync(GuaranteedWrittenPtr_, minPendingCacheOffset);
+ }
+ }
+ }
+
+ void ReopenLog() {
+ TGuard guard{Lock_};
+
+ Write();
+ FlushSync(GuaranteedWrittenPtr_, WrittenPtr_);
+
+ File_.LinkTo(OpenFile(File_.GetName()));
+
+ ResetPtrs();
+ }
+
+private:
+ void ResetPtrs() {
+ WrittenPtr_ = File_.GetLength();
+ PageAlignedWrittenPtr_ = AlignDown(WrittenPtr_, GetPageSize());
+ GuaranteedWrittenPtr_ = WrittenPtr_;
+ }
+
+ static TFile OpenFile(const TString& path) {
+ return TFile{path, OpenAlways | WrOnly | ForAppend | Seq | NoReuse};
+ }
+
+ static i64 GetPageSize() {
+ static const i64 pageSize = NSystemInfo::GetPageSize();
+ Y_ASSUME(IsPowerOf2(pageSize));
+ return pageSize;
+ }
+
+ void Write() {
+ File_.Write(Buffer_.Data(), Buffer_.Size());
+ WrittenPtr_ += Buffer_.Size();
+ PageAlignedWrittenPtr_ = AlignDown(WrittenPtr_, GetPageSize());
+ Buffer_.Clear();
+ }
+
+ void FlushAsync(const i64 from, const i64 to) {
+ File_.FlushCache(from, to - from, /* wait = */ false);
+ }
+
+ void FlushSync(const i64 from, const i64 to) {
+ const i64 begin = AlignDown(from, GetPageSize());
+ const i64 end = AlignUp(to, GetPageSize());
+ const i64 length = end - begin;
+
+ File_.FlushCache(begin, length, /* wait = */ true);
+ File_.EvictCache(begin, length);
+
+ GuaranteedWrittenPtr_ = to;
+ }
+
+private:
+ TMutex Lock_;
+ TFile File_;
+
+ const size_t MaxBufferSize_ = 0;
+ const size_t MaxPendingCacheSize_ = 0;
+
+ TBuffer Buffer_;
+ i64 WrittenPtr_ = 0;
+ i64 PageAlignedWrittenPtr_ = 0;
+ i64 GuaranteedWrittenPtr_ = 0;
+};
+
+TSyncPageCacheFileLogBackend::TSyncPageCacheFileLogBackend(const TString& path, size_t maxBufferSize, size_t maxPengingCacheSize)
+ : Impl_(MakeHolder<TImpl>(path, maxBufferSize, maxPengingCacheSize))
+{}
+
+TSyncPageCacheFileLogBackend::~TSyncPageCacheFileLogBackend() {
+}
+
+void TSyncPageCacheFileLogBackend::WriteData(const TLogRecord& rec) {
+ Impl_->WriteData(rec);
+}
+
+void TSyncPageCacheFileLogBackend::ReopenLog() {
+ Impl_->ReopenLog();
+}
diff --git a/library/cpp/logger/sync_page_cache_file.h b/library/cpp/logger/sync_page_cache_file.h
index a36340651c7..a909f01a642 100644
--- a/library/cpp/logger/sync_page_cache_file.h
+++ b/library/cpp/logger/sync_page_cache_file.h
@@ -1,19 +1,19 @@
-#pragma once
-
-#include "backend.h"
-
-#include <util/generic/fwd.h>
-#include <util/generic/ptr.h>
-
-class TSyncPageCacheFileLogBackend final: public TLogBackend {
-public:
- TSyncPageCacheFileLogBackend(const TString& path, size_t maxBufferSize, size_t maxPendingCacheSize);
- ~TSyncPageCacheFileLogBackend();
-
- void WriteData(const TLogRecord& rec) override;
- void ReopenLog() override;
-
-private:
- class TImpl;
- THolder<TImpl> Impl_;
-};
+#pragma once
+
+#include "backend.h"
+
+#include <util/generic/fwd.h>
+#include <util/generic/ptr.h>
+
+class TSyncPageCacheFileLogBackend final: public TLogBackend {
+public:
+ TSyncPageCacheFileLogBackend(const TString& path, size_t maxBufferSize, size_t maxPendingCacheSize);
+ ~TSyncPageCacheFileLogBackend();
+
+ void WriteData(const TLogRecord& rec) override;
+ void ReopenLog() override;
+
+private:
+ class TImpl;
+ THolder<TImpl> Impl_;
+};
diff --git a/library/cpp/logger/ya.make b/library/cpp/logger/ya.make
index 00a5263cba7..8c69ec0989d 100644
--- a/library/cpp/logger/ya.make
+++ b/library/cpp/logger/ya.make
@@ -33,7 +33,7 @@ SRCS(
GLOBAL rotating_file_creator.cpp
stream.cpp
GLOBAL stream_creator.cpp
- sync_page_cache_file.cpp
+ sync_page_cache_file.cpp
GLOBAL sync_page_cache_file_creator.cpp
system.cpp
GLOBAL system_creator.cpp