Skip to content

Commit

Permalink
[C#] Remote FASTER (#439)
Browse files Browse the repository at this point in the history
* Initial commit
* Added docs.
* Refactor client and common
  • Loading branch information
badrishc authored Apr 21, 2021
1 parent 4ed1091 commit 02c6266
Show file tree
Hide file tree
Showing 68 changed files with 5,357 additions and 20 deletions.
1 change: 1 addition & 0 deletions cs/FASTER.sln
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{C60F148B-2
..\docs\_docs\40-fasterlog-basics.md = ..\docs\_docs\40-fasterlog-basics.md
..\docs\_docs\43-fasterlog-tuning.md = ..\docs\_docs\43-fasterlog-tuning.md
..\docs\_docs\46-fasterlog-samples.md = ..\docs\_docs\46-fasterlog-samples.md
..\docs\_docs\50-remote-basics.md = ..\docs\_docs\50-remote-basics.md
..\docs\_docs\80-build-and-test.md = ..\docs\_docs\80-build-and-test.md
..\docs\_docs\82-code-structure.md = ..\docs\_docs\82-code-structure.md
..\docs\_docs\84-roadmap.md = ..\docs\_docs\84-roadmap.md
Expand Down
55 changes: 55 additions & 0 deletions cs/remote/FASTER.client.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>Microsoft.FASTER.Client</id>
<version>$version$</version>
<title>Remote Client Extension for FASTER</title>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<projectUrl>https://github.com/microsoft/FASTER</projectUrl>
<license type="expression">MIT</license>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>This is a client library that can be used to access a remote FASTER server created using Microsoft.FASTER.Server. FASTER is a fast concurrent persistent log and key-value store with cache for larger-than-memory data.</description>
<releaseNotes>See the project website at https://github.com/microsoft/FASTER for more details</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<language>en-US</language>
<tags>FASTER remote key-value store cache log azure storage device microsoft dictionary hashtable concurrent persistent</tags>
<repository type="git" url="https://github.com/microsoft/FASTER" />
<dependencies>
<group targetFramework="net461">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
<dependency id="System.ValueTuple" version="4.5.0" />
<dependency id="System.Memory" version="4.5.4" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
<dependency id="System.Memory" version="4.5.4" />
</group>
<group targetFramework="netstandard2.1">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.dll" target="lib\net461" />
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.pdb" target="lib\net461" />
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.xml" target="lib\net461" />
<file src="src\FASTER.client\bin\AnyCPU\Release\net461\FASTER.client.dll" target="lib\net461" />
<file src="src\FASTER.client\bin\AnyCPU\Release\net461\FASTER.client.pdb" target="lib\net461" />
<file src="src\FASTER.client\bin\AnyCPU\Release\net461\FASTER.client.xml" target="lib\net461" />

<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.dll" target="lib\netstandard2.0" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.pdb" target="lib\netstandard2.0" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.xml" target="lib\netstandard2.0" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.0\FASTER.client.dll" target="lib\netstandard2.0" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.0\FASTER.client.pdb" target="lib\netstandard2.0" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.0\FASTER.client.xml" target="lib\netstandard2.0" />

<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.dll" target="lib\netstandard2.1" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.pdb" target="lib\netstandard2.1" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.xml" target="lib\netstandard2.1" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.1\FASTER.client.dll" target="lib\netstandard2.1" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.1\FASTER.client.pdb" target="lib\netstandard2.1" />
<file src="src\FASTER.client\bin\AnyCPU\Release\netstandard2.1\FASTER.client.xml" target="lib\netstandard2.1" />
</files>
</package>
121 changes: 121 additions & 0 deletions cs/remote/FASTER.remote.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30503.244
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{1065AE7E-DEA5-4E21-AE39-95B93C074B17}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6B8D1038-C9D5-4111-B5CE-BF64E7D12AE1}"
ProjectSection(SolutionItems) = preProject
FASTER.client.nuspec = FASTER.client.nuspec
FASTER.server.nuspec = FASTER.server.nuspec
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmark", "benchmark", "{49D31F4D-6C21-4E1A-8079-FC5259E1C12F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FASTER.client", "src\FASTER.client\FASTER.client.csproj", "{86F3D7C4-97E9-4ADF-9004-782E748B4F02}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FASTER.common", "src\FASTER.common\FASTER.common.csproj", "{EA171421-6D86-46AA-BEC2-D6046E9276AA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FASTER.server", "src\FASTER.server\FASTER.server.csproj", "{3290C638-2149-4814-933D-C5F0708691B6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FASTER.benchmark", "benchmark\FASTER.benchmark\FASTER.benchmark.csproj", "{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VarLenServer", "samples\VarLenServer\VarLenServer.csproj", "{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VarLenClient", "samples\VarLenClient\VarLenClient.csproj", "{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FixedLenClient", "samples\FixedLenClient\FixedLenClient.csproj", "{0C52406C-09B3-47B9-BF85-B6490926DB73}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FixedLenServer", "samples\FixedLenServer\FixedLenServer.csproj", "{4053EC35-77A5-4728-B16F-F4FDD1104CAF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Debug|x64.ActiveCfg = Debug|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Debug|x64.Build.0 = Debug|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Release|Any CPU.Build.0 = Release|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Release|x64.ActiveCfg = Release|Any CPU
{86F3D7C4-97E9-4ADF-9004-782E748B4F02}.Release|x64.Build.0 = Release|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Debug|x64.ActiveCfg = Debug|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Debug|x64.Build.0 = Debug|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Release|Any CPU.Build.0 = Release|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Release|x64.ActiveCfg = Release|Any CPU
{EA171421-6D86-46AA-BEC2-D6046E9276AA}.Release|x64.Build.0 = Release|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Debug|x64.ActiveCfg = Debug|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Debug|x64.Build.0 = Debug|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Release|Any CPU.Build.0 = Release|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Release|x64.ActiveCfg = Release|Any CPU
{3290C638-2149-4814-933D-C5F0708691B6}.Release|x64.Build.0 = Release|Any CPU
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Debug|x64.ActiveCfg = Debug|x64
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Debug|x64.Build.0 = Debug|x64
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Release|Any CPU.Build.0 = Release|Any CPU
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Release|x64.ActiveCfg = Release|x64
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89}.Release|x64.Build.0 = Release|x64
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Debug|x64.ActiveCfg = Debug|x64
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Debug|x64.Build.0 = Debug|x64
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Release|Any CPU.Build.0 = Release|Any CPU
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Release|x64.ActiveCfg = Release|x64
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D}.Release|x64.Build.0 = Release|x64
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Debug|x64.ActiveCfg = Debug|x64
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Debug|x64.Build.0 = Debug|x64
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Release|Any CPU.Build.0 = Release|Any CPU
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Release|x64.ActiveCfg = Release|x64
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07}.Release|x64.Build.0 = Release|x64
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Debug|x64.ActiveCfg = Debug|x64
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Debug|x64.Build.0 = Debug|x64
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Release|Any CPU.Build.0 = Release|Any CPU
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Release|x64.ActiveCfg = Release|x64
{0C52406C-09B3-47B9-BF85-B6490926DB73}.Release|x64.Build.0 = Release|x64
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Debug|x64.ActiveCfg = Debug|x64
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Debug|x64.Build.0 = Debug|x64
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Release|Any CPU.Build.0 = Release|Any CPU
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Release|x64.ActiveCfg = Release|x64
{4053EC35-77A5-4728-B16F-F4FDD1104CAF}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{86F3D7C4-97E9-4ADF-9004-782E748B4F02} = {6B8D1038-C9D5-4111-B5CE-BF64E7D12AE1}
{EA171421-6D86-46AA-BEC2-D6046E9276AA} = {6B8D1038-C9D5-4111-B5CE-BF64E7D12AE1}
{3290C638-2149-4814-933D-C5F0708691B6} = {6B8D1038-C9D5-4111-B5CE-BF64E7D12AE1}
{CB393EBA-C92D-4AE5-9ED8-5A9DA2358D89} = {49D31F4D-6C21-4E1A-8079-FC5259E1C12F}
{7425E9B2-3AA9-4883-8B80-CDDFE9BBF00D} = {1065AE7E-DEA5-4E21-AE39-95B93C074B17}
{E29CE6C5-A295-4279-BA0A-BFA693B4EF07} = {1065AE7E-DEA5-4E21-AE39-95B93C074B17}
{0C52406C-09B3-47B9-BF85-B6490926DB73} = {1065AE7E-DEA5-4E21-AE39-95B93C074B17}
{4053EC35-77A5-4728-B16F-F4FDD1104CAF} = {1065AE7E-DEA5-4E21-AE39-95B93C074B17}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FB603D60-F72D-4DAD-9349-442A45E20276}
EndGlobalSection
EndGlobal
56 changes: 56 additions & 0 deletions cs/remote/FASTER.server.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>Microsoft.FASTER.Server</id>
<version>$version$</version>
<title>Remote Server Extension for FASTER</title>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<projectUrl>https://github.com/microsoft/FASTER</projectUrl>
<license type="expression">MIT</license>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>This library allows FASTER to be used as a server, accessible from remote clients using Microsoft.FASTER.Client. FASTER is a fast concurrent persistent log and key-value store with cache for larger-than-memory data.</description>
<releaseNotes>See the project website at https://github.com/microsoft/FASTER for more details</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<language>en-US</language>
<tags>FASTER remote key-value store cache log azure storage device microsoft dictionary hashtable concurrent persistent</tags>
<repository type="git" url="https://github.com/microsoft/FASTER" />
<dependencies>
<group targetFramework="net461">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
<dependency id="Microsoft.FASTER.Core" version="$version$" />
<dependency id="System.ValueTuple" version="4.5.0" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
<dependency id="Microsoft.FASTER.Core" version="$version$" />
</group>
<group targetFramework="netstandard2.1">
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
<dependency id="Microsoft.FASTER.Core" version="$version$" />
</group>
</dependencies>
</metadata>
<files>
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.dll" target="lib\net461" />
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.pdb" target="lib\net461" />
<file src="src\FASTER.common\bin\AnyCPU\Release\net461\FASTER.common.xml" target="lib\net461" />
<file src="src\FASTER.server\bin\AnyCPU\Release\net461\FASTER.server.dll" target="lib\net461" />
<file src="src\FASTER.server\bin\AnyCPU\Release\net461\FASTER.server.pdb" target="lib\net461" />
<file src="src\FASTER.server\bin\AnyCPU\Release\net461\FASTER.server.xml" target="lib\net461" />

<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.dll" target="lib\netstandard2.0" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.pdb" target="lib\netstandard2.0" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.0\FASTER.common.xml" target="lib\netstandard2.0" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.0\FASTER.server.dll" target="lib\netstandard2.0" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.0\FASTER.server.pdb" target="lib\netstandard2.0" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.0\FASTER.server.xml" target="lib\netstandard2.0" />

<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.dll" target="lib\netstandard2.1" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.pdb" target="lib\netstandard2.1" />
<file src="src\FASTER.common\bin\AnyCPU\Release\netstandard2.1\FASTER.common.xml" target="lib\netstandard2.1" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.1\FASTER.server.dll" target="lib\netstandard2.1" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.1\FASTER.server.pdb" target="lib\netstandard2.1" />
<file src="src\FASTER.server\bin\AnyCPU\Release\netstandard2.1\FASTER.server.xml" target="lib\netstandard2.1" />
</files>
</package>
3 changes: 3 additions & 0 deletions cs/remote/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# FASTER Client Server


30 changes: 30 additions & 0 deletions cs/remote/benchmark/FASTER.benchmark/FASTER.benchmark.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DefineConstants>TRACE;DEBUG</DefineConstants>
<DebugType>full</DebugType>
<OutputPath>bin\$(Platform)\Debug\</OutputPath>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<OutputPath>bin\$(Platform)\Release\</OutputPath>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="CommandLineParser" Version="2.8.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\FASTER.client\FASTER.client.csproj" />
</ItemGroup>

</Project>
Loading

0 comments on commit 02c6266

Please sign in to comment.