在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 使用C#和C++实现快速持久化可恢复的日志和键值存储+缓存

使用C#和C++实现快速持久化可恢复的日志和键值存储+缓存

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.65M
  • 下载次数:0
  • 浏览次数:4
  • 发布时间:2024-04-27
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签: c++ 实现 存储 缓存 C#

实例介绍

【实例简介】

管理大型应用状态的难题是当前云计算中最困难的问题之一。FASTER项目提供了两个工具来帮助解决这个问题。

FASTER Log是一个高性能的并发持久化可恢复的日志、迭代器和随机读取库,使用C#实现。它支持低延迟的频繁提交操作,并且可以快速饱和磁盘带宽。它支持同步和异步接口,处理磁盘错误,并支持校验和。

FASTER KV是一个并发的键值存储 缓存(在C#和C 中可用),专为点查找和大量更新而设计。FASTER通过利用快速的外部存储(本地或云端)支持大于内存的数据。它还支持使用快速的非阻塞检查点技术进行一致性恢复,从而让应用程序可以在性能和提交延迟之间进行权衡。


【实例截图】
【核心代码】
文件清单
└── FASTER-e9e56ed4229759ed092e7baccb9dfe27a75fd80f
    ├── azure-pipelines-full.yml
    ├── azure-pipelines.yml
    ├── cc
    │   ├── benchmark-dir
    │   │   ├── benchmark.cc
    │   │   ├── benchmark.vcxproj
    │   │   ├── benchmark.vcxproj.filters
    │   │   ├── CMakeLists.txt
    │   │   ├── file.h
    │   │   ├── process_ycsb.cc
    │   │   └── README.md
    │   ├── CMakeLists.txt
    │   ├── CMakeLists.txt.in
    │   ├── playground
    │   │   ├── CMakeLists.txt
    │   │   └── sum_store-dir
    │   │       ├── CMakeLists.txt
    │   │       ├── concurrent_recovery_test.h
    │   │       ├── single_threaded_recovery_test.h
    │   │       ├── sum_store.cc
    │   │       └── sum_store.h
    │   ├── README.md
    │   ├── scripts
    │   │   └── linux
    │   │       └── azure
    │   │           └── blob.sh
    │   ├── src
    │   │   ├── CMakeLists.txt
    │   │   ├── common
    │   │   │   └── log.h
    │   │   ├── core
    │   │   │   ├── address.cc
    │   │   │   ├── address.h
    │   │   │   ├── alloc.h
    │   │   │   ├── async.h
    │   │   │   ├── async_result_types.h
    │   │   │   ├── auto_ptr.h
    │   │   │   ├── checkpoint_locks.h
    │   │   │   ├── checkpoint_state.h
    │   │   │   ├── compact.h
    │   │   │   ├── constants.h
    │   │   │   ├── faster.h
    │   │   │   ├── gc_state.h
    │   │   │   ├── grow_state.h
    │   │   │   ├── guid.h
    │   │   │   ├── hash_bucket.h
    │   │   │   ├── hash_table.h
    │   │   │   ├── internal_contexts.h
    │   │   │   ├── key_hash.h
    │   │   │   ├── light_epoch.h
    │   │   │   ├── log_scan.h
    │   │   │   ├── lss_allocator.cc
    │   │   │   ├── lss_allocator.h
    │   │   │   ├── malloc_fixed_page_size.h
    │   │   │   ├── native_buffer_pool.h
    │   │   │   ├── persistent_memory_malloc.h
    │   │   │   ├── phase.h
    │   │   │   ├── record.h
    │   │   │   ├── recovery_status.h
    │   │   │   ├── state_transitions.h
    │   │   │   ├── status.h
    │   │   │   ├── thread.cc
    │   │   │   ├── thread.h
    │   │   │   └── utility.h
    │   │   ├── device
    │   │   │   ├── azure.h
    │   │   │   ├── file_system_disk.h
    │   │   │   ├── null_disk.h
    │   │   │   └── storage.h
    │   │   └── environment
    │   │       ├── file_common.h
    │   │       ├── file.h
    │   │       ├── file_linux.cc
    │   │       ├── file_linux.h
    │   │       ├── file_windows.cc
    │   │       └── file_windows.h
    │   └── test
    │       ├── blobs
    │       │   ├── azure_test.cc
    │       │   ├── CMakeLists.txt
    │       │   ├── faster_blobs_example.cc
    │       │   └── storage_test.cc
    │       ├── CMakeLists.txt
    │       ├── compact_test.cc
    │       ├── in_memory_test.cc
    │       ├── malloc_fixed_page_size_test.cc
    │       ├── paging_queue_test.cc
    │       ├── paging_test.h
    │       ├── paging_threadpool_test.cc
    │       ├── paging_uring_test.cc
    │       ├── recovery_queue_test.cc
    │       ├── recovery_test.h
    │       ├── recovery_threadpool_test.cc
    │       ├── recovery_uring_test.cc
    │       ├── scan_test.cc
    │       ├── test_types.h
    │       └── utility_test.cc
    ├── CONTRIBUTING.md
    ├── cs
    │   ├── benchmark
    │   │   ├── App.config
    │   │   ├── ConcurrentDictionaryBenchmark.cs
    │   │   ├── FASTER.benchmark.csproj
    │   │   ├── FasterSpanByteYcsbBenchmark.cs
    │   │   ├── FasterYcsbBenchmark.cs
    │   │   ├── Functions.cs
    │   │   ├── FunctionsSB.cs
    │   │   ├── Input.cs
    │   │   ├── Key.cs
    │   │   ├── KeySpanByte.cs
    │   │   ├── Options.cs
    │   │   ├── Output.cs
    │   │   ├── Program.cs
    │   │   ├── Properties
    │   │   │   └── AssemblyInfo.cs
    │   │   ├── RandomGenerator.cs
    │   │   ├── scripts
    │   │   │   ├── compare_runs.ps1
    │   │   │   └── run_benchmark.ps1
    │   │   ├── TestLoader.cs
    │   │   ├── TestStats.cs
    │   │   ├── Value.cs
    │   │   ├── YcsbConstants.cs
    │   │   └── ZipfGenerator.cs
    │   ├── FASTER.sln
    │   ├── FASTER.snk
    │   ├── performance
    │   │   └── BenchmarkDotNet
    │   │       ├── BenchmarkDotNetTestsApp.cs
    │   │       ├── BenchmarkDotNetTests.csproj
    │   │       ├── InliningTests.cs
    │   │       ├── LightEpochTests.cs
    │   │       ├── README.md
    │   │       └── SyncVsAsyncTests.cs
    │   ├── playground
    │   │   ├── AsyncStress
    │   │   │   ├── AsyncStress.csproj
    │   │   │   ├── FasterWrapper.cs
    │   │   │   ├── IFasterWrapper.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── SerializedFasterWrapper.cs
    │   │   │   └── SerializedUpdaters.cs
    │   │   ├── CacheStoreConcurrent
    │   │   │   ├── CacheStoreConcurrent.csproj
    │   │   │   ├── Program.cs
    │   │   │   └── Types.cs
    │   │   ├── ClassRecoveryDurability
    │   │   │   ├── ClassRecoveryDurability.csproj
    │   │   │   ├── Program.cs
    │   │   │   ├── Storedb.cs
    │   │   │   └── Types.cs
    │   │   ├── FasterLogMLSDTest
    │   │   │   ├── FasterLogStress.csproj
    │   │   │   └── Program.cs
    │   │   ├── MemoryDb
    │   │   │   ├── MemoryDb.csproj
    │   │   │   └── Program.cs
    │   │   ├── SumStore
    │   │   │   ├── App.config
    │   │   │   ├── ConcurrencyTest.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   ├── AssemblyInfo.cs
    │   │   │   │   └── launchSettings.json
    │   │   │   ├── README.md
    │   │   │   ├── RecoveryTest.cs
    │   │   │   ├── SumStore.csproj
    │   │   │   └── SumStoreTypes.cs
    │   │   └── TstRunner
    │   │       ├── Program.cs
    │   │       └── TstRunner.csproj
    │   ├── README.md
    │   ├── remote
    │   │   ├── benchmark
    │   │   │   └── FASTER.benchmark
    │   │   │       ├── FASTER.benchmark.csproj
    │   │   │       ├── FasterYcsbBenchmark.cs
    │   │   │       ├── Native32.cs
    │   │   │       ├── Program.cs
    │   │   │       ├── Properties
    │   │   │       │   └── launchSettings.json
    │   │   │       ├── RandomGenerator.cs
    │   │   │       └── Types.cs
    │   │   ├── FASTER.client.nuspec
    │   │   ├── FASTER.remote.sln
    │   │   ├── FASTER.server.nuspec
    │   │   ├── README.md
    │   │   ├── samples
    │   │   │   ├── FixedLenClient
    │   │   │   │   ├── FixedLenClient.csproj
    │   │   │   │   ├── Functions.cs
    │   │   │   │   └── Program.cs
    │   │   │   ├── FixedLenServer
    │   │   │   │   ├── FixedLenServer.csproj
    │   │   │   │   ├── Program.cs
    │   │   │   │   └── Types.cs
    │   │   │   ├── VarLenClient
    │   │   │   │   ├── CustomType.cs
    │   │   │   │   ├── CustomTypeFunctions.cs
    │   │   │   │   ├── CustomTypeSamples.cs
    │   │   │   │   ├── MemoryBenchmark.cs
    │   │   │   │   ├── MemoryFunctions.cs
    │   │   │   │   ├── MemorySamples.cs
    │   │   │   │   ├── Program.cs
    │   │   │   │   └── VarLenClient.csproj
    │   │   │   ├── VarLenServer
    │   │   │   │   ├── Options.cs
    │   │   │   │   ├── Program.cs
    │   │   │   │   └── VarLenServer.csproj
    │   │   │   └── WebClient
    │   │   │       ├── FASTERFunctions.js
    │   │   │       └── WebClient.html
    │   │   ├── src
    │   │   │   ├── FASTER.client
    │   │   │   │   ├── CallbackFunctionsBase.cs
    │   │   │   │   ├── ClientNetworkSession.cs
    │   │   │   │   ├── ClientSessionAsync.cs
    │   │   │   │   ├── ClientSession.cs
    │   │   │   │   ├── FASTER.client.csproj
    │   │   │   │   ├── FasterKVClient.cs
    │   │   │   │   ├── FixedLenSerializer.cs
    │   │   │   │   ├── ICallbackFunctions.cs
    │   │   │   │   ├── JavascriptClient
    │   │   │   │   │   ├── BatchHeader.js
    │   │   │   │   │   ├── CallbackFunctionsBase.js
    │   │   │   │   │   ├── ClientNetworkSession.js
    │   │   │   │   │   ├── ClientSession.js
    │   │   │   │   │   ├── ParameterSerializer.js
    │   │   │   │   │   ├── Queue.js
    │   │   │   │   │   └── Utils.js
    │   │   │   │   ├── MemoryFunctionsBase.cs
    │   │   │   │   ├── MemoryParameterSerializer.cs
    │   │   │   │   ├── StatusCode.cs
    │   │   │   │   └── Status.cs
    │   │   │   ├── FASTER.common
    │   │   │   │   ├── BatchHeader.cs
    │   │   │   │   ├── BufferSizeUtils.cs
    │   │   │   │   ├── ElasticCircularBuffer.cs
    │   │   │   │   ├── FASTER.common.csproj
    │   │   │   │   ├── HeaderReaderWriter.cs
    │   │   │   │   ├── IClientSerializer.cs
    │   │   │   │   ├── IKeyInputSerializer.cs
    │   │   │   │   ├── IKeySerializer.cs
    │   │   │   │   ├── IMessageConsumer.cs
    │   │   │   │   ├── INetworkSender.cs
    │   │   │   │   ├── IServerSerializer.cs
    │   │   │   │   ├── LightConcurrentStack.cs
    │   │   │   │   ├── MaxSizeSettings.cs
    │   │   │   │   ├── MessageType.cs
    │   │   │   │   ├── NetworkSenderBase.cs
    │   │   │   │   ├── SeaaBuffer.cs
    │   │   │   │   ├── SimpleObjectPool.cs
    │   │   │   │   ├── TcpNetworkSender.cs
    │   │   │   │   └── WireFormat.cs
    │   │   │   └── FASTER.server
    │   │   │       ├── BinaryServerSession.cs
    │   │   │       ├── ByteArrayComparer.cs
    │   │   │       ├── ConnectionArgs.cs
    │   │   │       ├── FasterKVServerSessionBase.cs
    │   │   │       ├── FASTER.server.csproj
    │   │   │       ├── FixedLenSerializer.cs
    │   │   │       ├── ISessionProvider.cs
    │   │   │       ├── Providers
    │   │   │       │   ├── FasterKVProviderBase.cs
    │   │   │       │   ├── FasterKVProvider.cs
    │   │   │       │   └── SpanByteFasterKVProvider.cs
    │   │   │       ├── PubSub
    │   │   │       │   ├── FixedLenKeySerializer.cs
    │   │   │       │   ├── GlobUtils.cs
    │   │   │       │   ├── SpanByteKeySerializer.cs
    │   │   │       │   ├── SubscribeBroker.cs
    │   │   │       │   └── SubscribeKVBroker.cs
    │   │   │       ├── ServerKVFunctions.cs
    │   │   │       ├── Servers
    │   │   │       │   ├── FasterServerBase.cs
    │   │   │       │   ├── FasterServerTcp.cs
    │   │   │       │   ├── FixedLenServer.cs
    │   │   │       │   ├── GenericServer.cs
    │   │   │       │   ├── IFasterServer.cs
    │   │   │       │   ├── ServerOptions.cs
    │   │   │       │   └── VarLenServer.cs
    │   │   │       ├── ServerSessionBase.cs
    │   │   │       ├── SpanByteClientSerializer.cs
    │   │   │       ├── SpanByteFunctionsForServer.cs
    │   │   │       ├── SpanByteServerSerializer.cs
    │   │   │       └── WebsocketServerSession.cs
    │   │   └── test
    │   │       └── FASTER.remote.test
    │   │           ├── FASTER.remote.test.csproj
    │   │           ├── FixedLenBinaryPubSubTests.cs
    │   │           ├── FixedLenBinaryTests.cs
    │   │           ├── FixedLenClient.cs
    │   │           ├── TestUtils.cs
    │   │           ├── VarLenBinaryPubSubTests.cs
    │   │           ├── VarLenBinaryTests.cs
    │   │           └── VarLenMemoryClient.cs
    │   ├── samples
    │   │   ├── AzureBackedStore
    │   │   │   ├── App.config
    │   │   │   ├── AzureBackedStore.csproj
    │   │   │   ├── Functions.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   └── Types.cs
    │   │   ├── CacheStore
    │   │   │   ├── CacheStore.csproj
    │   │   │   ├── Program.cs
    │   │   │   └── Types.cs
    │   │   ├── EpvsSample
    │   │   │   ├── EpvsBench.cs
    │   │   │   ├── EpvsSample.csproj
    │   │   │   ├── ListExample.cs
    │   │   │   └── Program.cs
    │   │   ├── FasterLogPubSub
    │   │   │   ├── App.config
    │   │   │   ├── FasterLogPubSub.csproj
    │   │   │   ├── Program.cs
    │   │   │   └── Properties
    │   │   │       └── AssemblyInfo.cs
    │   │   ├── FasterLogSample
    │   │   │   ├── App.config
    │   │   │   ├── FasterLogSample.csproj
    │   │   │   ├── Program.cs
    │   │   │   └── Properties
    │   │   │       └── AssemblyInfo.cs
    │   │   ├── HelloWorld
    │   │   │   ├── App.config
    │   │   │   ├── HelloWorld.csproj
    │   │   │   ├── Program.cs
    │   │   │   └── Properties
    │   │   │       └── AssemblyInfo.cs
    │   │   ├── ReadAddress
    │   │   │   ├── Types.cs
    │   │   │   ├── VersionedReadApp.cs
    │   │   │   └── VersionedRead.csproj
    │   │   ├── ResizableCacheStore
    │   │   │   ├── CacheSizeTracker.cs
    │   │   │   ├── ISizeTracker.cs
    │   │   │   ├── LogSizeTracker.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── ResizableCacheStore.csproj
    │   │   │   ├── Types.cs
    │   │   │   └── ZipfGenerator.cs
    │   │   ├── SecondaryReaderStore
    │   │   │   ├── Program.cs
    │   │   │   └── SecondaryReaderStore.csproj
    │   │   ├── StoreAsyncApi
    │   │   │   ├── App.config
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   ├── StoreAsyncApi.csproj
    │   │   │   └── Types.cs
    │   │   ├── StoreCheckpointRecover
    │   │   │   ├── App.config
    │   │   │   ├── Functions.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   ├── StoreCheckpointRecover.csproj
    │   │   │   └── Types.cs
    │   │   ├── StoreCustomTypes
    │   │   │   ├── App.config
    │   │   │   ├── Functions.cs
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   ├── StoreCustomTypes.csproj
    │   │   │   └── Types.cs
    │   │   ├── StoreDiskReadBenchmark
    │   │   │   ├── App.config
    │   │   │   ├── Program.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   ├── StoreDiskReadBenchmark.csproj
    │   │   │   └── Types.cs
    │   │   ├── StoreLogCompaction
    │   │   │   ├── Program.cs
    │   │   │   ├── StoreLogCompaction.csproj
    │   │   │   └── Types.cs
    │   │   └── StoreVarLenTypes
    │   │       ├── App.config
    │   │       ├── AsciiSumSample.cs
    │   │       ├── AsciiSumSpanByteFunctions.cs
    │   │       ├── CustomMemoryFunctions.cs
    │   │       ├── CustomSpanByteFunctions.cs
    │   │       ├── MemoryByteSample.cs
    │   │       ├── MemoryIntSample.cs
    │   │       ├── Program.cs
    │   │       ├── Properties
    │   │       │   └── AssemblyInfo.cs
    │   │       ├── SpanByteSample.cs
    │   │       ├── StoreVarLenTypes.csproj
    │   │       └── Utils.cs
    │   ├── src
    │   │   ├── core
    │   │   │   ├── Allocator
    │   │   │   │   ├── AllocatorBase.cs
    │   │   │   │   ├── AsyncIOContext.cs
    │   │   │   │   ├── AtomicOwner.cs
    │   │   │   │   ├── BlittableAllocator.cs
    │   │   │   │   ├── BlittableFrame.cs
    │   │   │   │   ├── BlittableScanIterator.cs
    │   │   │   │   ├── ErrorList.cs
    │   │   │   │   ├── GenericAllocator.cs
    │   │   │   │   ├── GenericFrame.cs
    │   │   │   │   ├── GenericScanIterator.cs
    │   │   │   │   ├── IFasterScanIterator.cs
    │   │   │   │   ├── IScanIteratorFunctions.cs
    │   │   │   │   ├── MallocFixedPageSize.cs
    │   │   │   │   ├── MemoryPageScanIterator.cs
    │   │   │   │   ├── PageUnit.cs
    │   │   │   │   ├── PendingFlushList.cs
    │   │   │   │   ├── ScanIteratorBase.cs
    │   │   │   │   ├── VarLenBlittableAllocator.cs
    │   │   │   │   ├── VarLenBlittableScanIterator.cs
    │   │   │   │   ├── WorkQueueFIFO.cs
    │   │   │   │   └── WorkQueueLIFO.cs
    │   │   │   ├── Async
    │   │   │   │   ├── AsyncOperationInternal.cs
    │   │   │   │   ├── CompletePendingAsync.cs
    │   │   │   │   ├── DeleteAsync.cs
    │   │   │   │   ├── ReadAsync.cs
    │   │   │   │   ├── RMWAsync.cs
    │   │   │   │   └── UpsertAsync.cs
    │   │   │   ├── ClientSession
    │   │   │   │   ├── BasicContext.cs
    │   │   │   │   ├── ClientSession.cs
    │   │   │   │   ├── FASTERClientSession.cs
    │   │   │   │   ├── IClientSession.cs
    │   │   │   │   ├── IFasterContext.cs
    │   │   │   │   ├── ILockableContext.cs
    │   │   │   │   ├── IUnsafeContext.cs
    │   │   │   │   ├── LockableContext.cs
    │   │   │   │   ├── LockableUnsafeContext.cs
    │   │   │   │   └── UnsafeContext.cs
    │   │   │   ├── Compaction
    │   │   │   │   ├── CompactionType.cs
    │   │   │   │   ├── FASTERCompaction.cs
    │   │   │   │   ├── ICompactionFunctions.cs
    │   │   │   │   └── LogCompactionFunctions.cs
    │   │   │   ├── Device
    │   │   │   │   ├── AsyncPool.cs
    │   │   │   │   ├── Devices.cs
    │   │   │   │   ├── IDevice.cs
    │   │   │   │   ├── LocalMemoryDevice.cs
    │   │   │   │   ├── LocalStorageDevice.cs
    │   │   │   │   ├── ManagedLocalStorageDevice.cs
    │   │   │   │   ├── NullDevice.cs
    │   │   │   │   ├── ShardedStorageDevice.cs
    │   │   │   │   ├── StorageDeviceBase.cs
    │   │   │   │   └── TieredStorageDevice.cs
    │   │   │   ├── Epochs
    │   │   │   │   ├── EpochProtectedVersionScheme.cs
    │   │   │   │   ├── FastThreadLocal.cs
    │   │   │   │   └── LightEpoch.cs
    │   │   │   ├── FASTER.core.csproj
    │   │   │   ├── FASTER.core.nuspec
    │   │   │   ├── FasterLog
    │   │   │   │   ├── CommitFailureException.cs
    │   │   │   │   ├── CommitInfo.cs
    │   │   │   │   ├── FasterLog.cs
    │   │   │   │   ├── FasterLogIterator.cs
    │   │   │   │   ├── FasterLogRecoveryInfo.cs
    │   │   │   │   ├── FasterLogSettings.cs
    │   │   │   │   ├── ILogCommitManager.cs
    │   │   │   │   ├── ILogEnqueueEntry.cs
    │   │   │   │   ├── ILogEntryConsumer.cs
    │   │   │   │   ├── IReadOnlySpanBatch.cs
    │   │   │   │   └── LogCommitPolicy.cs
    │   │   │   ├── Index
    │   │   │   │   ├── CheckpointManagement
    │   │   │   │   │   ├── DefaultCheckpointNamingScheme.cs
    │   │   │   │   │   ├── DeviceLogCommitCheckpointManager.cs
    │   │   │   │   │   ├── ICheckpointNamingScheme.cs
    │   │   │   │   │   ├── INamedDeviceFactory.cs
    │   │   │   │   │   ├── LocalStorageNamedDeviceFactory.cs
    │   │   │   │   │   └── NullNamedDeviceFactory.cs
    │   │   │   │   ├── Common
    │   │   │   │   │   ├── AddressInfo.cs
    │   │   │   │   │   ├── CheckpointSettings.cs
    │   │   │   │   │   ├── CompletedOutput.cs
    │   │   │   │   │   ├── Contexts.cs
    │   │   │   │   │   ├── FasterKVSettings.cs
    │   │   │   │   │   ├── HeapContainer.cs
    │   │   │   │   │   ├── LogSettings.cs
    │   │   │   │   │   ├── OperationOptions.cs
    │   │   │   │   │   ├── RecordInfo.cs
    │   │   │   │   │   └── RecordMetadata.cs
    │   │   │   │   ├── FASTER
    │   │   │   │   │   ├── Extensions.cs
    │   │   │   │   │   ├── FASTERBase.cs
    │   │   │   │   │   ├── FASTER.cs
    │   │   │   │   │   ├── FASTERIterator.cs
    │   │   │   │   │   ├── FASTERThread.cs
    │   │   │   │   │   ├── Implementation
    │   │   │   │   │   │   ├── BlockAllocate.cs
    │   │   │   │   │   │   ├── ConditionalCopyToTail.cs
    │   │   │   │   │   │   ├── ContainsKeyInMemory.cs
    │   │   │   │   │   │   ├── ContinuePending.cs
    │   │   │   │   │   │   ├── EpochOperations.cs
    │   │   │   │   │   │   ├── FindRecord.cs
    │   │   │   │   │   │   ├── HandleOperationStatus.cs
    │   │   │   │   │   │   ├── HashEntryInfo.cs
    │   │   │   │   │   │   ├── Helpers.cs
    │   │   │   │   │   │   ├── InternalDelete.cs
    │   │   │   │   │   │   ├── InternalLock.cs
    │   │   │   │   │   │   ├── InternalRead.cs
    │   │   │   │   │   │   ├── InternalRMW.cs
    │   │   │   │   │   │   ├── InternalUpsert.cs
    │   │   │   │   │   │   ├── Locking
    │   │   │   │   │   │   │   ├── ILockTable.cs
    │   │   │   │   │   │   │   ├── OverflowBucketLockTable.cs
    │   │   │   │   │   │   │   └── TransientLocking.cs
    │   │   │   │   │   │   ├── ModifiedBitOperation.cs
    │   │   │   │   │   │   ├── OperationStackContext.cs
    │   │   │   │   │   │   ├── ReadCache.cs
    │   │   │   │   │   │   ├── RecordSource.cs
    │   │   │   │   │   │   ├── SplitIndex.cs
    │   │   │   │   │   │   ├── TryCopyToReadCache.cs
    │   │   │   │   │   │   └── TryCopyToTail.cs
    │   │   │   │   │   ├── LogAccessor.cs
    │   │   │   │   │   └── WriteReason.cs
    │   │   │   │   ├── Interfaces
    │   │   │   │   │   ├── CallbackInfos.cs
    │   │   │   │   │   ├── DataContractObjectSerializer.cs
    │   │   │   │   │   ├── FasterEqualityComparer.cs
    │   │   │   │   │   ├── FunctionsBase.cs
    │   │   │   │   │   ├── IFasterEqualityComparer.cs
    │   │   │   │   │   ├── IFasterKV.cs
    │   │   │   │   │   ├── IFasterSession.cs
    │   │   │   │   │   ├── IFunctions.cs
    │   │   │   │   │   ├── IObjectSerializer.cs
    │   │   │   │   │   ├── NullFasterSession.cs
    │   │   │   │   │   ├── ObjectSerializer.cs
    │   │   │   │   │   └── TryAddFunctions.cs
    │   │   │   │   ├── Recovery
    │   │   │   │   │   ├── Checkpoint.cs
    │   │   │   │   │   ├── DeltaLog.cs
    │   │   │   │   │   ├── DirectoryConfiguration.cs
    │   │   │   │   │   ├── FileDescriptor.cs
    │   │   │   │   │   ├── ICheckpointManager.cs
    │   │   │   │   │   ├── IndexCheckpoint.cs
    │   │   │   │   │   ├── IndexRecovery.cs
    │   │   │   │   │   └── Recovery.cs
    │   │   │   │   └── Synchronization
    │   │   │   │       ├── FasterStateMachine.cs
    │   │   │   │       ├── FullCheckpointStateMachine.cs
    │   │   │   │       ├── HybridLogCheckpointTask.cs
    │   │   │   │       ├── IndexResizeStateMachine.cs
    │   │   │   │       ├── IndexSnapshotStateMachine.cs
    │   │   │   │       ├── IStateMachineCallback.cs
    │   │   │   │       ├── ISynchronizationStateMachine.cs
    │   │   │   │       ├── StateTransitions.cs
    │   │   │   │       └── VersionChangeStateMachine.cs
    │   │   │   ├── Properties
    │   │   │   │   └── AssemblyInfo.cs
    │   │   │   ├── Utilities
    │   │   │   │   ├── AsyncCountDown.cs
    │   │   │   │   ├── AsyncQueue.cs
    │   │   │   │   ├── AsyncResultTypes.cs
    │   │   │   │   ├── BufferPool.cs
    │   │   │   │   ├── CompletionEvent.cs
    │   │   │   │   ├── FasterException.cs
    │   │   │   │   ├── LockType.cs
    │   │   │   │   ├── Native32.cs
    │   │   │   │   ├── OverflowPool.cs
    │   │   │   │   ├── PageAsyncResultTypes.cs
    │   │   │   │   ├── SafeConcurrentDictionary.cs
    │   │   │   │   ├── StatusCode.cs
    │   │   │   │   ├── Status.cs
    │   │   │   │   └── Utility.cs
    │   │   │   └── VarLen
    │   │   │       ├── DefaultVariableLengthStruct.cs
    │   │   │       ├── FixedLengthStruct.cs
    │   │   │       ├── IHeapConvertible.cs
    │   │   │       ├── IVariableLengthStruct.cs
    │   │   │       ├── MemoryComparer.cs
    │   │   │       ├── MemoryFunctions.cs
    │   │   │       ├── MemoryVarLenStruct.cs
    │   │   │       ├── ReadOnlyMemoryVarLenStruct.cs
    │   │   │       ├── SessionVariableLengthStructSettings.cs
    │   │   │       ├── SpanByteAndMemory.cs
    │   │   │       ├── SpanByteComparer.cs
    │   │   │       ├── SpanByte.cs
    │   │   │       ├── SpanByteExtensions.cs
    │   │   │       ├── SpanByteFunctions.cs
    │   │   │       ├── SpanByteVarLenStruct.cs
    │   │   │       ├── UnmanagedMemoryManager.cs
    │   │   │       ├── UnsafeLogMemoryExtensions.cs
    │   │   │       ├── VariableLengthStructSettings.cs
    │   │   │       └── VarLenHeapContainer.cs
    │   │   └── devices
    │   │       └── AzureStorageDevice
    │   │           ├── AzureStorageDevice.cs
    │   │           ├── AzureStorageNamedDeviceFactory.cs
    │   │           ├── BlobEntry.cs
    │   │           ├── BlobManager.cs
    │   │           ├── BlobUtils.cs
    │   │           ├── BlobUtilsV12.cs
    │   │           ├── FASTER.devices.AzureStorageDevice.csproj
    │   │           ├── FASTER.devices.AzureStorageDevice.nuspec
    │   │           ├── FasterTraceHelper.cs
    │   │           ├── IBlobManager.cs
    │   │           ├── IStorageErrorHandler.cs
    │   │           ├── LeaseTimer.cs
    │   │           ├── StorageErrorHandler.cs
    │   │           ├── StorageOperations.cs
    │   │           ├── TrackedThreads.cs
    │   │           └── Utils.cs
    │   ├── stress
    │   │   ├── FASTER.stress.csproj
    │   │   ├── IKeyTester.cs
    │   │   ├── IValueTester.cs
    │   │   ├── LongKeyTester.cs
    │   │   ├── LongValueTester.cs
    │   │   ├── NonSpanByteValueFunctions.cs
    │   │   ├── Options.cs
    │   │   ├── SessionWrapper.cs
    │   │   ├── SpanByteKeyTester.cs
    │   │   ├── SpanByteValueFunctions.cs
    │   │   ├── SpanByteValueTester.cs
    │   │   ├── StressApp.cs
    │   │   ├── StringKeyTester.cs
    │   │   ├── StringValueTester.cs
    │   │   └── TestLoader.cs
    │   └── test
    │       ├── AdvancedLockTests.cs
    │       ├── app.config
    │       ├── AsyncLargeObjectTests.cs
    │       ├── AsyncTests.cs
    │       ├── BasicDiskFASTERTests.cs
    │       ├── BasicFASTERTests.cs
    │       ├── BasicLockTests.cs
    │       ├── BlittableIterationTests.cs
    │       ├── BlittableLogCompactionTests.cs
    │       ├── BlittableLogScanTests.cs
    │       ├── CancellationTests.cs
    │       ├── CheckpointManagerTests.cs
    │       ├── CompletePendingTests.cs
    │       ├── ComponentRecoveryTests.cs
    │       ├── DeltaLogTests.cs
    │       ├── DeviceFasterLogTests.cs
    │       ├── DisposeTests.cs
    │       ├── EnqueueAndWaitForCommit.cs
    │       ├── EnqueueTests.cs
    │       ├── EphemeralLockingTests.cs
    │       ├── ExpirationTests.cs
    │       ├── FasterLogAndDeviceConfigTests.cs
    │       ├── FasterLogFastCommitTests.cs
    │       ├── FasterLogRecoverReadOnlyTests.cs
    │       ├── FasterLogResumeTests.cs
    │       ├── FasterLogScanTests.cs
    │       ├── FasterLogTests.cs
    │       ├── FASTER.test.csproj
    │       ├── FlakyDeviceTests.cs
    │       ├── FunctionPerSessionTests.cs
    │       ├── GenericByteArrayTests.cs
    │       ├── GenericDiskDeleteTests.cs
    │       ├── GenericIterationTests.cs
    │       ├── GenericLogCompactionTests.cs
    │       ├── GenericLogScanTests.cs
    │       ├── GenericStringTests.cs
    │       ├── InputOutputParameterTests.cs
    │       ├── LargeObjectTests.cs
    │       ├── LockableUnsafeContextTests.cs
    │       ├── LogFormatter.cs
    │       ├── LogReadAsyncTests.cs
    │       ├── LogShiftTailStressTest.cs
    │       ├── LowMemAsyncTests.cs
    │       ├── MallocFixedPageSizeTests.cs
    │       ├── ManagedLocalStorageTests.cs
    │       ├── MemoryLogCompactionTests.cs
    │       ├── MiscFASTERTests.cs
    │       ├── ModifiedBitTests.cs
    │       ├── MoreLogCompactionTests.cs
    │       ├── NameValidator.cs
    │       ├── NativeReadCacheTests.cs
    │       ├── NeedCopyUpdateTests.cs
    │       ├── NUnitLoggerProvider.cs
    │       ├── ObjectFASTERTests.cs
    │       ├── ObjectReadCacheTests.cs
    │       ├── ObjectRecoveryTest2.cs
    │       ├── ObjectRecoveryTest3.cs
    │       ├── ObjectRecoveryTest.cs
    │       ├── ObjectRecoveryTestTypes.cs
    │       ├── ObjectTestTypes.cs
    │       ├── OverflowBucketLockTableTests.cs
    │       ├── PostOperationsTests.cs
    │       ├── Properties
    │       │   └── AssemblyInfo.cs
    │       ├── ReadAddressTests.cs
    │       ├── ReadCacheChainTests.cs
    │       ├── RecoverContinueTests.cs
    │       ├── RecoverReadOnlyTest.cs
    │       ├── RecoveryChecks.cs
    │       ├── RecoveryTests.cs
    │       ├── RecoveryTestTypes.cs
    │       ├── ReproReadCacheTest.cs
    │       ├── SessionFASTERTests.cs
    │       ├── SharedDirectoryTests.cs
    │       ├── SimpleAsyncTests.cs
    │       ├── SimpleRecoveryTest.cs
    │       ├── SimpleTests.cs
    │       ├── SimpleVersionSchemeTest.cs
    │       ├── SimulatedFlakyDevice.cs
    │       ├── SingleWriterTests.cs
    │       ├── SpanByteLogScanTests.cs
    │       ├── SpanByteTests.cs
    │       ├── StateMachineBarrierTests.cs
    │       ├── StateMachineTests.cs
    │       ├── TestTypes.cs
    │       ├── TestUtils.cs
    │       ├── ThreadSession.cs
    │       ├── TryEnqueueBasicTests.cs
    │       ├── UnsafeContextTests.cs
    │       ├── VariableLengthIteratorTests.cs
    │       ├── VariableLengthStructFASTERTests.cs
    │       ├── VarLenBlittableIterationTests.cs
    │       ├── VLTestTypes.cs
    │       └── WaitForCommit.cs
    ├── docs
    │   ├── assets
    │   │   ├── css
    │   │   │   └── main.scss
    │   │   └── images
    │   │       ├── faster-banner.png
    │   │       └── faster-logo.png
    │   ├── _config.yml
    │   ├── _data
    │   │   └── navigation.yml
    │   ├── _docs
    │   │   ├── 01-quick-start-guide.md
    │   │   ├── 02-faqs.md
    │   │   ├── 20-fasterkv-basics.md
    │   │   ├── 23-fasterkv-tuning.md
    │   │   ├── 25-fasterkv-recovery.md
    │   │   ├── 26-fasterkv-samples.md
    │   │   ├── 29-fasterkv-cpp.md
    │   │   ├── 30-fasterkv-record-locking.md
    │   │   ├── 40-fasterlog-basics.md
    │   │   ├── 43-fasterlog-tuning.md
    │   │   ├── 46-fasterlog-samples.md
    │   │   ├── 50-remote-basics.md
    │   │   ├── 51-remote-pubsub.md
    │   │   ├── 80-build-and-test.md
    │   │   ├── 82-code-structure.md
    │   │   ├── 84-roadmap.md
    │   │   ├── 90-td-introduction.md
    │   │   ├── 95-research-papers.md
    │   │   └── 96-slides-videos.md
    │   ├── Gemfile
    │   ├── _includes
    │   │   ├── feature_row_small
    │   │   └── footer.html
    │   ├── _layouts
    │   │   └── default.html
    │   ├── _pages
    │   │   └── home.md
    │   ├── README.md
    │   └── _sass
    │       └── minimal-mistakes
    │           └── skins
    │               └── _air.scss
    ├── img
    │   ├── bechmark-machine-specs.png
    │   ├── big-0reads-int64cd.png
    │   ├── big-0reads-logscale.png
    │   ├── big-0reads.png
    │   ├── big-100reads-int64cd.png
    │   ├── big-100reads-logscale.png
    │   ├── big-100reads.png
    │   ├── big-50reads-int64cd.png
    │   ├── big-50reads-logscale.png
    │   ├── big-50reads.png
    │   ├── big-loading.png
    │   ├── big-readpercent.png
    │   ├── scan-uncommitted.png
    │   ├── small-0reads.png
    │   ├── small-100reads.png
    │   └── small-50reads.png
    ├── LICENSE
    ├── README.md
    └── SECURITY.md

114 directories, 672 files

标签: c++ 实现 存储 缓存 C#

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警