Commit 6d1013f9 by Kumar

scan test code

0 parents
using System;
using System.Collections.Generic;
using System.Text;
namespace Google.Cloud.Bigtable.ScanTest
{
class AppSettings
{
public string InstanceId { get; set; }
public string ProjectId { get; set; }
public string TableName { get; set; }
public string ColumnFamily { get; set; }
public string RowKeyPrefix { get; set; }
public string LogFile { get; set; }
public string PerfFile { get; set; }
public long Records { get; set; }
public int LoadThreads { get; set; }
public int RowKeySize { get; set; }
public int ColumnLength { get; set; }
public string ColumnPrefix { get; set; }
public int ScanInterval { get; set; }
public int Columns { get; set; }
public int BatchSize { get; set; }
public string ScanLimits { get; set; }
public int MutateRowTimeOutInMilliSeconds { get; set; }
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HdrHistogram" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\google\apis\Google.Cloud.Bigtable.Admin.V2\Google.Cloud.Bigtable.Admin.V2\Google.Cloud.Bigtable.Admin.V2.csproj" />
<ProjectReference Include="..\..\..\..\..\google\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.V2.csproj" />
</ItemGroup>
</Project>

using Google.Cloud.Bigtable.Admin.V2;
using Google.Cloud.Bigtable.V2;
using HdrHistogram;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
namespace Google.Cloud.Bigtable.ScanTest
{
class Program
{
public static AppSettings AppSetting;
public static int ScanTime;
public static long ScanCount = 0;
public static long RecordScanned = 0;
public static long ThroughputTime = 0;
public static DateTime _startTime = DateTime.Now;
public static bool IsDataLoaded = false;
static void Main(string[] args)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Starting Scan test");
var builder = new ConfigurationBuilder().
SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfigurationRoot configuration = builder.Build();
AppSetting = new AppSettings();
configuration.Bind(AppSetting);
V2.TableName _table = new tableHelper().getTable();
/*string[] arrLimit = AppSetting.ScanLimits.Split(',');
Hashtable _result = new Hashtable();
System.Timers.Timer _timer = new System.Timers.Timer();
_timer = new System.Timers.Timer();
_timer.Elapsed += _timer_Elapsed;
_timer.Interval = 60000; //minute
foreach (string arr in arrLimit)
{
if (arr.Trim().Length > 0)
{
if (Convert.ToInt32(arr.Trim()) > 0)
{
_timer.Enabled = true;
Program.ScanTime = 0;
Program.ThroughputTime = 0;
Program.ScanCount = 0;
Program.RecordScanned = 0;
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {AppSetting.TableName} time interval: {AppSetting.ScanInterval} mins.");
new scanHelper(_table).scan(Convert.ToInt32(arr.Trim())).Wait();
//_scanResult.Wait();
int _throughtput = Convert.ToInt32(Program.RecordScanned / (Program.ThroughputTime / 1000));
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {AppSetting.TableName} time interval: {AppSetting.ScanInterval} mins, limit: {arr.Trim()}, throughput time:{_throughtput}.");
_result[arr.Trim()] = _throughtput;
_timer.Enabled = false;
}
}
}
_timer.Stop();
WriteCsv(_result);
WriteToConsole(_result);*/
if (IsDataLoaded)
{
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine($"Main thread going to sleep mode for {AppSetting.MutateRowTimeOutInMilliSeconds} milliseconds");
Thread.Sleep(AppSetting.MutateRowTimeOutInMilliSeconds);
}
Environment.Exit(0);
}
private static void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Performed {ScanCount} scans in : {ScanTime + 1} mins, total scanned {RecordScanned} rows, throughput: {ThroughputTime} milliseconds");
++ScanTime;
}
static void WriteCsv(Hashtable hash)
{
try
{
using (StreamWriter writetext = new StreamWriter(AppSetting.LogFile))
{
writetext.WriteLine("Number of rows per scan, Throughput");
foreach (DictionaryEntry pair in hash)
{
writetext.WriteLine(pair.Key.ToString() + "," + pair.Value.ToString());
}
writetext.WriteLine("");
writetext.WriteLine("");
writetext.WriteLine("Client, Type, StartTime");
writetext.WriteLine($"C#, scant, {_startTime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} Exception writing test results into {AppSetting.LogFile },error: {ex.Message}");
}
}
static void WriteToConsole(Hashtable hash)
{
try
{
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("---------------------RESULT--------------------");
Console.WriteLine("Number of rows per scan, Throughput");
foreach (DictionaryEntry pair in hash)
{
Console.WriteLine(pair.Key.ToString() + "," + pair.Value.ToString());
}
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("Client, Type, StartTime");
Console.WriteLine($"C#, scant, {_startTime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} Exception writing test results into {AppSetting.LogFile },error: {ex.Message}");
}
}
}
}
{
"profiles": {
"Google.Cloud.Bigtable.ScanTest": {
"commandName": "Project",
"environmentVariables": {
"GOOGLE_APPLICATION_CREDENTIALS": " C:\\qlogic\\google-cloud-dotnet\\apis\\Google.Cloud.Bigtable.V2\\Grass Clump 479-b5c624400920.json"
}
}
}
}
\ No newline at end of file
{
"instanceId": "dotnet-perf",
"projectId": "grass-clump-479",
"tableName": "perfscantest",
"columnFamily": "cf",
"rowKeyPrefix": "user",
"rowKeySize": 7,
"records": 1000,
"batchSize": 1000,
"loadThreads": 10,
"columnLength": 100,
"columns": 10,
"columnPrefix": "field",
"scanLimits": "100",
"scanInterval": 1,
"mutateRowTimeOutInMilliSeconds": 60000,
"logFile": "c:\\qlogic\\google\\scan.txt"
}
\ No newline at end of file
This diff could not be displayed because it is too large.
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v2.0",
"signature": "5e8b8cf1723eb5f17a083307c8cf4fba713d7758"
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v2.0": {
"Google.Cloud.Bigtable.ScanTest/1.0.0": {
"dependencies": {
"Google.Cloud.Bigtable.Admin.V2": "1.0.0-alpha02",
"Google.Cloud.Bigtable.V2": "1.0.0-alpha02",
"HdrHistogram": "2.5.0",
"Microsoft.Extensions.Configuration": "2.0.0",
"Microsoft.Extensions.Configuration.Binder": "2.0.0",
"Microsoft.Extensions.Configuration.Json": "2.0.0"
},
"runtime": {
"Google.Cloud.Bigtable.ScanTest.dll": {}
}
},
"Google.Api.CommonProtos/1.1.0": {
"dependencies": {
"Google.Protobuf": "3.4.1"
},
"runtime": {
"lib/netstandard1.3/Google.Api.CommonProtos.dll": {}
}
},
"Google.Api.Gax/2.2.1": {
"dependencies": {
"Microsoft.Extensions.PlatformAbstractions": "1.1.0",
"Newtonsoft.Json": "10.0.2",
"System.Interactive.Async": "3.1.1"
},
"runtime": {
"lib/netstandard1.3/Google.Api.Gax.dll": {}
}
},
"Google.Api.Gax.Grpc/2.2.1": {
"dependencies": {
"Google.Api.CommonProtos": "1.1.0",
"Google.Api.Gax": "2.2.1",
"Google.Apis.Auth": "1.30.0",
"Grpc.Auth": "1.7.0",
"Grpc.Core": "1.7.1"
},
"runtime": {
"lib/netstandard1.5/Google.Api.Gax.Grpc.dll": {}
}
},
"Google.Apis/1.30.0": {
"dependencies": {
"Google.Apis.Core": "1.30.0",
"Newtonsoft.Json": "10.0.2",
"System.Net.Http": "4.3.1",
"System.Reflection.TypeExtensions": "4.3.0"
},
"runtime": {
"lib/netstandard1.3/Google.Apis.dll": {}
}
},
"Google.Apis.Auth/1.30.0": {
"dependencies": {
"Google.Apis": "1.30.0",
"Google.Apis.Core": "1.30.0",
"System.Diagnostics.Process": "4.3.0",
"System.Net.Requests": "4.3.0"
},
"runtime": {
"lib/netstandard1.3/Google.Apis.Auth.PlatformServices.dll": {},
"lib/netstandard1.3/Google.Apis.Auth.dll": {}
}
},
"Google.Apis.Core/1.30.0": {
"dependencies": {
"Newtonsoft.Json": "10.0.2",
"System.Net.Http": "4.3.1",
"System.Reflection.TypeExtensions": "4.3.0"
},
"runtime": {
"lib/netstandard1.3/Google.Apis.Core.dll": {}
}
},
"Google.Cloud.Iam.V1/1.0.0-beta12": {
"dependencies": {
"Google.Api.Gax.Grpc": "2.2.1",
"Grpc.Core": "1.7.1"
},
"runtime": {
"lib/netstandard1.5/Google.Cloud.Iam.V1.dll": {}
}
},
"Google.LongRunning/1.0.0": {
"dependencies": {
"Google.Api.Gax.Grpc": "2.2.1",
"Google.Protobuf": "3.4.1",
"Grpc.Core": "1.7.1"
},
"runtime": {
"lib/netstandard1.5/Google.LongRunning.dll": {}
}
},
"Google.Protobuf/3.4.1": {
"runtime": {
"lib/netstandard1.0/Google.Protobuf.dll": {}
}
},
"Grpc.Auth/1.7.0": {
"dependencies": {
"Google.Apis.Auth": "1.30.0",
"Grpc.Core": "1.7.1"
},
"runtime": {
"lib/netstandard1.5/Grpc.Auth.dll": {}
}
},
"Grpc.Core/1.7.1": {
"dependencies": {
"System.Interactive.Async": "3.1.1",
"System.Runtime.Loader": "4.0.0",
"System.Threading.Thread": "4.3.0",
"System.Threading.ThreadPool": "4.3.0"
},
"runtime": {
"lib/netstandard1.5/Grpc.Core.dll": {}
},
"runtimeTargets": {
"runtimes/linux/native/libgrpc_csharp_ext.x64.so": {
"rid": "linux",
"assetType": "native"
},
"runtimes/linux/native/libgrpc_csharp_ext.x86.so": {
"rid": "linux",
"assetType": "native"
},
"runtimes/osx/native/libgrpc_csharp_ext.x64.dylib": {
"rid": "osx",
"assetType": "native"
},
"runtimes/osx/native/libgrpc_csharp_ext.x86.dylib": {
"rid": "osx",
"assetType": "native"
},
"runtimes/win/native/grpc_csharp_ext.x64.dll": {
"rid": "win",
"assetType": "native"
},
"runtimes/win/native/grpc_csharp_ext.x86.dll": {
"rid": "win",
"assetType": "native"
}
}
},
"HdrHistogram/2.5.0": {
"runtime": {
"lib/netstandard1.3/HdrHistogram.dll": {}
}
},
"Microsoft.CSharp/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Dynamic.Runtime": "4.3.0",
"System.Globalization": "4.3.0",
"System.Linq": "4.3.0",
"System.Linq.Expressions": "4.3.0",
"System.ObjectModel": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Threading": "4.3.0"
}
},
"Microsoft.Extensions.Configuration/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {}
}
},
"Microsoft.Extensions.Configuration.Abstractions/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {}
}
},
"Microsoft.Extensions.Configuration.Binder/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "2.0.0",
"Microsoft.Extensions.FileProviders.Physical": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {}
}
},
"Microsoft.Extensions.Configuration.Json/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "2.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "2.0.0",
"Newtonsoft.Json": "10.0.2"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll": {}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/2.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {}
}
},
"Microsoft.Extensions.FileProviders.Physical/2.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "2.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {}
}
},
"Microsoft.Extensions.FileSystemGlobbing/2.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {}
}
},
"Microsoft.Extensions.PlatformAbstractions/1.1.0": {
"dependencies": {
"System.Reflection.TypeExtensions": "4.3.0"
},
"runtime": {
"lib/netstandard1.3/Microsoft.Extensions.PlatformAbstractions.dll": {}
}
},
"Microsoft.Extensions.Primitives/2.0.0": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "4.4.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {}
}
},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.Win32.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"Microsoft.Win32.Registry/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Globalization": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"Newtonsoft.Json/10.0.2": {
"dependencies": {
"Microsoft.CSharp": "4.3.0",
"System.ComponentModel.TypeConverter": "4.3.0",
"System.Runtime.Serialization.Formatters": "4.3.0",
"System.Runtime.Serialization.Primitives": "4.3.0",
"System.Xml.XmlDocument": "4.3.0"
},
"runtime": {
"lib/netstandard1.3/Newtonsoft.Json.dll": {}
}
},
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/debian.8-x64/native/_._": {
"rid": "debian.8-x64",
"assetType": "native"
}
}
},
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/fedora.23-x64/native/_._": {
"rid": "fedora.23-x64",
"assetType": "native"
}
}
},
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/fedora.24-x64/native/_._": {
"rid": "fedora.24-x64",
"assetType": "native"
}
}
},
"runtime.native.System/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"runtime.native.System.Net.Http/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"runtime.native.System.Security.Cryptography.Apple/4.3.0": {
"dependencies": {
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
}
},
"runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"dependencies": {
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
}
},
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/opensuse.13.2-x64/native/_._": {
"rid": "opensuse.13.2-x64",
"assetType": "native"
}
}
},
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/opensuse.42.1-x64/native/_._": {
"rid": "opensuse.42.1-x64",
"assetType": "native"
}
}
},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
"runtimeTargets": {
"runtime/osx.10.10-x64/native/_._": {
"rid": "osx.10.10-x64",
"assetType": "native"
}
}
},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/osx.10.10-x64/native/_._": {
"rid": "osx.10.10-x64",
"assetType": "native"
}
}
},
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/rhel.7-x64/native/_._": {
"rid": "rhel.7-x64",
"assetType": "native"
}
}
},
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/ubuntu.14.04-x64/native/_._": {
"rid": "ubuntu.14.04-x64",
"assetType": "native"
}
}
},
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/ubuntu.16.04-x64/native/_._": {
"rid": "ubuntu.16.04-x64",
"assetType": "native"
}
}
},
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"runtimeTargets": {
"runtime/ubuntu.16.10-x64/native/_._": {
"rid": "ubuntu.16.10-x64",
"assetType": "native"
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Collections.Concurrent/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.Tracing": "4.3.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Collections.NonGeneric/4.3.0": {
"dependencies": {
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Collections.Specialized/4.3.0": {
"dependencies": {
"System.Collections.NonGeneric": "4.3.0",
"System.Globalization": "4.3.0",
"System.Globalization.Extensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.ComponentModel/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.ComponentModel.Primitives/4.3.0": {
"dependencies": {
"System.ComponentModel": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.ComponentModel.TypeConverter/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Collections.NonGeneric": "4.3.0",
"System.Collections.Specialized": "4.3.0",
"System.ComponentModel": "4.3.0",
"System.ComponentModel.Primitives": "4.3.0",
"System.Globalization": "4.3.0",
"System.Linq": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Diagnostics.DiagnosticSource/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Tracing": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Diagnostics.Process/4.3.0": {
"dependencies": {
"Microsoft.Win32.Primitives": "4.3.0",
"Microsoft.Win32.Registry": "4.3.0",
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.IO.FileSystem": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Text.Encoding.Extensions": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0",
"System.Threading.Thread": "4.3.0",
"System.Threading.ThreadPool": "4.3.0",
"runtime.native.System": "4.3.0"
},
"runtimeTargets": {
"runtime/linux/lib/_._": {
"rid": "linux",
"assetType": "runtime"
},
"runtime/osx/lib/_._": {
"rid": "osx",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Diagnostics.Tracing/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Dynamic.Runtime/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Linq": "4.3.0",
"System.Linq.Expressions": "4.3.0",
"System.ObjectModel": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Globalization.Calendars/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Globalization.Extensions/4.3.0": {
"dependencies": {
"System.Globalization": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.InteropServices": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Interactive.Async/3.1.1": {
"runtime": {
"lib/netstandard1.3/System.Interactive.Async.dll": {}
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.FileSystem/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.FileSystem.Primitives/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.Linq/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.Linq.Expressions/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Linq": "4.3.0",
"System.ObjectModel": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Emit.Lightweight": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Net.Http/4.3.1": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.DiagnosticSource": "4.3.0",
"System.Diagnostics.Tracing": "4.3.0",
"System.Globalization": "4.3.0",
"System.Globalization.Extensions": "4.3.0",
"System.IO": "4.3.0",
"System.IO.FileSystem": "4.3.0",
"System.Net.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.OpenSsl": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Security.Cryptography.X509Certificates": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0",
"runtime.native.System": "4.3.0",
"runtime.native.System.Net.Http": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Net.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Net.Requests/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.Tracing": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Net.Http": "4.3.1",
"System.Net.Primitives": "4.3.0",
"System.Net.WebHeaderCollection": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Net.WebHeaderCollection/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.ObjectModel/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.TypeExtensions/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.CompilerServices.Unsafe/4.4.0": {
"runtime": {
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {}
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Handles/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.InteropServices/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Runtime.Loader/4.0.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Numerics/4.3.0": {
"dependencies": {
"System.Globalization": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.Runtime.Serialization.Formatters/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Reflection": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Serialization.Primitives": "4.3.0"
}
},
"System.Runtime.Serialization.Primitives/4.3.0": {
"dependencies": {
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Security.Cryptography.Algorithms/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Runtime.Numerics": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.Apple": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
},
"runtimeTargets": {
"runtime/osx/lib/_._": {
"rid": "osx",
"assetType": "runtime"
},
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Security.Cryptography.Cng/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Security.Cryptography.Csp/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Security.Cryptography.Encoding/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Collections.Concurrent": "4.3.0",
"System.Linq": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Security.Cryptography.OpenSsl/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Runtime.Numerics": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
}
}
},
"System.Security.Cryptography.Primitives/4.3.0": {
"dependencies": {
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Security.Cryptography.X509Certificates/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.Globalization.Calendars": "4.3.0",
"System.IO": "4.3.0",
"System.IO.FileSystem": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Runtime.Numerics": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Security.Cryptography.Cng": "4.3.0",
"System.Security.Cryptography.Csp": "4.3.0",
"System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.OpenSsl": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading": "4.3.0",
"runtime.native.System": "4.3.0",
"runtime.native.System.Net.Http": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
},
"runtimeTargets": {
"runtime/unix/lib/_._": {
"rid": "unix",
"assetType": "runtime"
},
"runtime/win/lib/_._": {
"rid": "win",
"assetType": "runtime"
}
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0"
}
},
"System.Text.RegularExpressions/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.Threading/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Threading.Tasks.Extensions/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Thread/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.Threading.ThreadPool/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Xml.ReaderWriter/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.IO.FileSystem": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Text.Encoding.Extensions": "4.3.0",
"System.Text.RegularExpressions": "4.3.0",
"System.Threading.Tasks": "4.3.0",
"System.Threading.Tasks.Extensions": "4.3.0"
}
},
"System.Xml.XmlDocument/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading": "4.3.0",
"System.Xml.ReaderWriter": "4.3.0"
}
},
"Google.Cloud.Bigtable.Admin.V2/1.0.0-alpha02": {
"dependencies": {
"Google.Api.Gax.Grpc": "2.2.1",
"Google.Cloud.Iam.V1": "1.0.0-beta12",
"Google.LongRunning": "1.0.0",
"Grpc.Core": "1.7.1"
},
"runtime": {
"Google.Cloud.Bigtable.Admin.V2.dll": {}
}
},
"Google.Cloud.Bigtable.V2/1.0.0-alpha02": {
"dependencies": {
"Google.Api.Gax.Grpc": "2.2.1",
"Grpc.Core": "1.7.1"
},
"runtime": {
"Google.Cloud.Bigtable.V2.dll": {}
}
}
}
},
"libraries": {
"Google.Cloud.Bigtable.ScanTest/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Google.Api.CommonProtos/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-24Neiw0ZSFBYJ39eUPm2LHWs3g/XrCgFjsp9mLuwnjMduMEPCcyf4d9xJzm7MW0MihA4IB+siKtcaSLD2yXfNw==",
"path": "google.api.commonprotos/1.1.0",
"hashPath": "google.api.commonprotos.1.1.0.nupkg.sha512"
},
"Google.Api.Gax/2.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Dhqg6OBw+mrZrbHTJDrUaXEvLiyBOyTw3DJ5tz2sLgBN6uwPMA2e2hy52GKeFZXFsisq78qsot5lrahOM/nC6Q==",
"path": "google.api.gax/2.2.1",
"hashPath": "google.api.gax.2.2.1.nupkg.sha512"
},
"Google.Api.Gax.Grpc/2.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DTHYN1cXzNZag+69ccbMwE+TPzofnQHfsT4r9Dr03AA5LTCgIH1Op5+PlBvlEscqgsbqWDTcVqVh1hx3H6Lx6g==",
"path": "google.api.gax.grpc/2.2.1",
"hashPath": "google.api.gax.grpc.2.2.1.nupkg.sha512"
},
"Google.Apis/1.30.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-icocyVIaIuolakLQbF3hZY5bfiXkSbBQw6ieeSWaii79eZihoBO4sMJt8LL3siglUQnyBmiaKfEuMGFwbAzw0g==",
"path": "google.apis/1.30.0",
"hashPath": "google.apis.1.30.0.nupkg.sha512"
},
"Google.Apis.Auth/1.30.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7xM52hWIIfoGgTaN7vwZF1qjHr2ILuEXzlRbWexnHi2I+LZT1vMIB8vRgVI+UQYvm66DpslIe+xx+32oIvclGA==",
"path": "google.apis.auth/1.30.0",
"hashPath": "google.apis.auth.1.30.0.nupkg.sha512"
},
"Google.Apis.Core/1.30.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RfIzNCT7ZRyFlvMzyXC/2IdaPlJdPQgdBXCBlK3FF8Het4wnW7Zgu+ClBk2gMpBO6p6rW2UkDkZxTn17Z5Ws+w==",
"path": "google.apis.core/1.30.0",
"hashPath": "google.apis.core.1.30.0.nupkg.sha512"
},
"Google.Cloud.Iam.V1/1.0.0-beta12": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dbEEWOcJUE6aoc5Wr4WYIxlb89mvgAHV3Tu141Kb/auXihOZBs7M/5+SwV+crMOqKHJ/R6y5bQVcC020tv5h5A==",
"path": "google.cloud.iam.v1/1.0.0-beta12",
"hashPath": "google.cloud.iam.v1.1.0.0-beta12.nupkg.sha512"
},
"Google.LongRunning/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AbZU9XU0mTc/huZwAVVDZzOurgpYwQ0+UIc0yZNBRxfXOvgY593QLdZsUhSNbO3ITN4xomMfoPMRFtFzq29CMg==",
"path": "google.longrunning/1.0.0",
"hashPath": "google.longrunning.1.0.0.nupkg.sha512"
},
"Google.Protobuf/3.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-whGnxrX8cgAwbhyP/NhnMtWMd4b+ewOeujl7WVtsrtkPiJrIK2BZLOjfgDPB8im9mPMRebWT/RE/1lJCvDsMuQ==",
"path": "google.protobuf/3.4.1",
"hashPath": "google.protobuf.3.4.1.nupkg.sha512"
},
"Grpc.Auth/1.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6WPWiJ3iRMypWWduJjFiGN9q5IXw66CTb8AKPJthXX1p0bFOWLISWXjLdToR/HGfAtYHwO79XCrXS1Hlm3ffsw==",
"path": "grpc.auth/1.7.0",
"hashPath": "grpc.auth.1.7.0.nupkg.sha512"
},
"Grpc.Core/1.7.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Gtc5IEnlVOa3k2a4CtTQQk4qMQTiV+1rHehAxB7nOhF6jNFcChmVGHnFyd4V8iuHqx2uwXNyqyrSB033Bat3Cw==",
"path": "grpc.core/1.7.1",
"hashPath": "grpc.core.1.7.1.nupkg.sha512"
},
"HdrHistogram/2.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RE1wG9tbQJDnfgKnBYiR8DNIPC3a9oZeUqDOQmpxcH/xBOqU7T6R20YVndKtk6STglQyGaZCRnWue8WcAo87OA==",
"path": "hdrhistogram/2.5.0",
"hashPath": "hdrhistogram.2.5.0.nupkg.sha512"
},
"Microsoft.CSharp/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==",
"path": "microsoft.csharp/4.3.0",
"hashPath": "microsoft.csharp.4.3.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SsI4RqI8EH00+cYO96tbftlh87sNUv1eeyuBU1XZdQkG0RrHAOjWgl7P0FoLeTSMXJpOnfweeOWj2d1/5H3FxA==",
"path": "microsoft.extensions.configuration/2.0.0",
"hashPath": "microsoft.extensions.configuration.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rHFrXqMIvQNq51H8RYTO4IWmDOYh8NUzyqGlh0xHWTP6XYnKk7Ryinys2uDs+Vu88b3AMlM3gBBSs78m6OQpYQ==",
"path": "microsoft.extensions.configuration.abstractions/2.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IznHHzGUtrdpuQqIUdmzF6TYPcsYHONhHh3o9dGp39sX/9Zfmt476UnhvU0UhXgJnXXAikt/MpN6AuSLCCMdEQ==",
"path": "microsoft.extensions.configuration.binder/2.0.0",
"hashPath": "microsoft.extensions.configuration.binder.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ebFbu+vsz4rzeAICWavk9a0FutWVs7aNZap5k/IVxVhu2CnnhOp/H/gNtpzplrqjYDaNYdmv9a/DoUvH2ynVEQ==",
"path": "microsoft.extensions.configuration.fileextensions/2.0.0",
"hashPath": "microsoft.extensions.configuration.fileextensions.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-thPz4SckRGNqeLbdvJ619YxRFSkWuL1K5QqTMb3TVdEwjQj4O39yfUtjtI/XlWJiY7JKK4MUKAiQZVYc8ohKKg==",
"path": "microsoft.extensions.configuration.json/2.0.0",
"hashPath": "microsoft.extensions.configuration.json.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Z0AK+hmLO33WAXQ5P1uPzhH7z5yjDHX/XnUefXxE//SyvCb9x4cVjND24dT5566t/yzGp8/WLD7EG9KQKZZklQ==",
"path": "microsoft.extensions.fileproviders.abstractions/2.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DKO2j2socZbHNCCVEWsLVpB3AQIIzKYFNyITVeWdA1jQ829GJIQf4MUD04+1c+Q2kbK03pIKQZmEy4CGIfgDZw==",
"path": "microsoft.extensions.fileproviders.physical/2.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UC87vRDUB7/vSaNY/FVhbdAyRkfFBTkYmcUoglxk6TyTojhSqYaG5pZsoP4e1ZuXktFXJXJBTvK8U/QwCo0z3g==",
"path": "microsoft.extensions.filesystemglobbing/2.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.2.0.0.nupkg.sha512"
},
"Microsoft.Extensions.PlatformAbstractions/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-H6ZsQzxYw/6k2DfEQRXdC+vQ6obd6Uba3uGJrnJ2vG4PRXjQZ7seB13JdCfE72abp8E6Fk3gGgDzfJiLZi5ZpQ==",
"path": "microsoft.extensions.platformabstractions/1.1.0",
"hashPath": "microsoft.extensions.platformabstractions.1.1.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==",
"path": "microsoft.extensions.primitives/2.0.0",
"hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.Win32.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
"path": "microsoft.win32.primitives/4.3.0",
"hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==",
"path": "microsoft.win32.registry/4.3.0",
"hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512"
},
"Newtonsoft.Json/10.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iwElSU2IXmwGvytJsezyDML2ZWDkG2JzTYzlU/BNlmzMdlmRvbnwITsGGY74gwVEpDli1UdOLkMT7/3jxWvXzA==",
"path": "newtonsoft.json/10.0.2",
"hashPath": "newtonsoft.json.10.0.2.nupkg.sha512"
},
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==",
"path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==",
"path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==",
"path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.native.System/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
"path": "runtime.native.system/4.3.0",
"hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
},
"runtime.native.System.Net.Http/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
"path": "runtime.native.system.net.http/4.3.0",
"hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512"
},
"runtime.native.System.Security.Cryptography.Apple/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
"path": "runtime.native.system.security.cryptography.apple/4.3.0",
"hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
},
"runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
"path": "runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==",
"path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==",
"path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
"path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
"hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==",
"path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==",
"path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==",
"path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==",
"path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==",
"path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
"hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Collections.Concurrent/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
"path": "system.collections.concurrent/4.3.0",
"hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
},
"System.Collections.NonGeneric/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
"path": "system.collections.nongeneric/4.3.0",
"hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512"
},
"System.Collections.Specialized/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
"path": "system.collections.specialized/4.3.0",
"hashPath": "system.collections.specialized.4.3.0.nupkg.sha512"
},
"System.ComponentModel/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
"path": "system.componentmodel/4.3.0",
"hashPath": "system.componentmodel.4.3.0.nupkg.sha512"
},
"System.ComponentModel.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
"path": "system.componentmodel.primitives/4.3.0",
"hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512"
},
"System.ComponentModel.TypeConverter/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
"path": "system.componentmodel.typeconverter/4.3.0",
"hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Diagnostics.DiagnosticSource/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
"path": "system.diagnostics.diagnosticsource/4.3.0",
"hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512"
},
"System.Diagnostics.Process/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
"path": "system.diagnostics.process/4.3.0",
"hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512"
},
"System.Diagnostics.Tracing/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
"path": "system.diagnostics.tracing/4.3.0",
"hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
},
"System.Dynamic.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
"path": "system.dynamic.runtime/4.3.0",
"hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.Globalization.Calendars/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
"path": "system.globalization.calendars/4.3.0",
"hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512"
},
"System.Globalization.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
"path": "system.globalization.extensions/4.3.0",
"hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
},
"System.Interactive.Async/3.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hZccYiIE5RS1/J9Tb/BNtosAGVggdlsJm4Ojdu+gDV0p4AIi+LUfUogMKkRacljQEJd2AG6vYzvcjhQFkqoZmw==",
"path": "system.interactive.async/3.1.1",
"hashPath": "system.interactive.async.3.1.1.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.IO.FileSystem/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
"path": "system.io.filesystem/4.3.0",
"hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
},
"System.IO.FileSystem.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
"path": "system.io.filesystem.primitives/4.3.0",
"hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
},
"System.Linq/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
"path": "system.linq/4.3.0",
"hashPath": "system.linq.4.3.0.nupkg.sha512"
},
"System.Linq.Expressions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
"path": "system.linq.expressions/4.3.0",
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
},
"System.Net.Http/4.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UrTyRczM3ZvNk6oetBuwlu67MFKKRva+r7bw4JDVZ6Y2IukyZ24td5ppsieu/4yZlogVAIuZul9GIQ3hoiz0yA==",
"path": "system.net.http/4.3.1",
"hashPath": "system.net.http.4.3.1.nupkg.sha512"
},
"System.Net.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
"path": "system.net.primitives/4.3.0",
"hashPath": "system.net.primitives.4.3.0.nupkg.sha512"
},
"System.Net.Requests/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==",
"path": "system.net.requests/4.3.0",
"hashPath": "system.net.requests.4.3.0.nupkg.sha512"
},
"System.Net.WebHeaderCollection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==",
"path": "system.net.webheadercollection/4.3.0",
"hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512"
},
"System.ObjectModel/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
"path": "system.objectmodel/4.3.0",
"hashPath": "system.objectmodel.4.3.0.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
"path": "system.reflection.emit/4.3.0",
"hashPath": "system.reflection.emit.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
"path": "system.reflection.emit.ilgeneration/4.3.0",
"hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
"path": "system.reflection.emit.lightweight/4.3.0",
"hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512"
},
"System.Reflection.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
"path": "system.reflection.extensions/4.3.0",
"hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Reflection.TypeExtensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
"path": "system.reflection.typeextensions/4.3.0",
"hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==",
"path": "system.runtime.compilerservices.unsafe/4.4.0",
"hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Handles/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
"path": "system.runtime.handles/4.3.0",
"hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
"path": "system.runtime.interopservices/4.3.0",
"hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
},
"System.Runtime.Loader/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
"path": "system.runtime.loader/4.0.0",
"hashPath": "system.runtime.loader.4.0.0.nupkg.sha512"
},
"System.Runtime.Numerics/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
"path": "system.runtime.numerics/4.3.0",
"hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512"
},
"System.Runtime.Serialization.Formatters/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==",
"path": "system.runtime.serialization.formatters/4.3.0",
"hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512"
},
"System.Runtime.Serialization.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
"path": "system.runtime.serialization.primitives/4.3.0",
"hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Algorithms/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
"path": "system.security.cryptography.algorithms/4.3.0",
"hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Cng/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
"path": "system.security.cryptography.cng/4.3.0",
"hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Csp/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
"path": "system.security.cryptography.csp/4.3.0",
"hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
"path": "system.security.cryptography.encoding/4.3.0",
"hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.OpenSsl/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
"path": "system.security.cryptography.openssl/4.3.0",
"hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
"path": "system.security.cryptography.primitives/4.3.0",
"hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
},
"System.Security.Cryptography.X509Certificates/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
"path": "system.security.cryptography.x509certificates/4.3.0",
"hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Text.Encoding.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
"path": "system.text.encoding.extensions/4.3.0",
"hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
},
"System.Text.RegularExpressions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
"path": "system.text.regularexpressions/4.3.0",
"hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512"
},
"System.Threading/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
"path": "system.threading/4.3.0",
"hashPath": "system.threading.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
"path": "system.threading.tasks.extensions/4.3.0",
"hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512"
},
"System.Threading.Thread/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
"path": "system.threading.thread/4.3.0",
"hashPath": "system.threading.thread.4.3.0.nupkg.sha512"
},
"System.Threading.ThreadPool/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
"path": "system.threading.threadpool/4.3.0",
"hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512"
},
"System.Xml.ReaderWriter/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
"path": "system.xml.readerwriter/4.3.0",
"hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512"
},
"System.Xml.XmlDocument/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
"path": "system.xml.xmldocument/4.3.0",
"hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512"
},
"Google.Cloud.Bigtable.Admin.V2/1.0.0-alpha02": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Google.Cloud.Bigtable.V2/1.0.0-alpha02": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
\ No newline at end of file
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\Amrendra\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\Amrendra\\.nuget\\packages",
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
]
}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "netcoreapp2.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "2.0.0"
}
}
}
\ No newline at end of file
This diff could not be displayed because it is too large.
using System;
using System.Collections.Generic;
using System.Text;
using HdrHistogram;
namespace Google.Cloud.Bigtable.ScanTest
{
class histogramHelper
{
public static LongConcurrentHistogram ScanResponseHistogram = new LongConcurrentHistogram(3, TimeStamp.Hours(1), 3); // ticks
public static LongConcurrentHistogram ThroughputHistogram = new LongConcurrentHistogram(3, TimeStamp.Hours(1), 3);
public static LongConcurrentHistogram LoadHistogram = new LongConcurrentHistogram(3, TimeStamp.Hours(1), 3);
}
}
using Google.Cloud.Bigtable.V2;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Threading;
using HdrHistogram;
using System.Threading.Tasks;
using Google.Api.Gax.Grpc;
namespace Google.Cloud.Bigtable.ScanTest
{
class loadDataHelper
{
private AppSettings _appSettings;
private V2.TableName _table;
private BigtableClient _client;
private Random _rnd = new Random();
public loadDataHelper(V2.TableName _tableName)
{
_appSettings = Program.AppSetting;
_table = _tableName;
_client = BigtableClient.Create();
Program.IsDataLoaded = true;
}
public void loadTable()
{
//List<Thread> threads = new List<Thread>();
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Loading {_appSettings.Records} records into table {_appSettings.TableName}. Threads: {_appSettings.LoadThreads}. Cluster: {_appSettings.InstanceId}");
try
{
var tasks = new List<Task<int>>();
long recordsPerThread = _appSettings.Records / _appSettings.LoadThreads;
long reminder = _appSettings.Records % _appSettings.LoadThreads;
//initialize load histogram again
//_loadHistogram = new LongConcurrentHistogram(3, TimeStamp.Hours(1), 3);
for (int threadCount = 0; threadCount < _appSettings.LoadThreads; threadCount++)
{
int _position = threadCount;
if (threadCount == _appSettings.LoadThreads - 1)
{
//threads.Add(new Thread(() => processLoad(_position, recordsPerThread, recordsPerThread + reminder)));
string _input = _position.ToString() + "/" + recordsPerThread.ToString() + "/" + (recordsPerThread + reminder).ToString();
tasks.Add(Task<int>.Factory.StartNew(processLoad, _input));
}
else
{
// threads.Add(new Thread(() => processLoad(_position, recordsPerThread, recordsPerThread)));
string _input = _position.ToString() + "/" + recordsPerThread.ToString() + "/" + recordsPerThread.ToString();
tasks.Add(Task<int>.Factory.StartNew(processLoad, _input));
}
}
Task.WaitAll(tasks.ToArray());
//threads.ForEach(a => a.Start());
//threads.ForEach(a => a.Join());
//threads.Clear();
//threads = null;
tasks.ForEach(a => a.Dispose());
tasks.Clear();
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Data loaded successfully into table {_appSettings.TableName}");
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception while loading data, error message: {ex.Message}");
}
}
private int processLoad(object input)
{
try
{
string[] _array = input.ToString().Split('/');
int threadNumber = Convert.ToInt32(_array[0]);
long startPosition = Convert.ToInt64(_array[1]);
long totalRecords = Convert.ToInt64(_array[2]);
int recordCount = 0;
MutateRowsRequest request = new MutateRowsRequest() { TableNameAsTableName = _table };
MutateRowsRequest.Types.Entry entry = new MutateRowsRequest.Types.Entry();
// iterating through number of records assigned to a thread
long recordNumber;
for (int insertCount = 0; insertCount < totalRecords; insertCount++)
{
recordCount++;
entry = new MutateRowsRequest.Types.Entry();
entry.Mutations.Add(MutationsBuilder());
// building a batch of defined size
recordNumber = threadNumber * startPosition + insertCount;
StringBuilder sbRowKey = new StringBuilder(_appSettings.RowKeyPrefix + recordNumber.ToString("D" + _appSettings.RowKeySize));
entry.RowKey = Protobuf.ByteString.CopyFromUtf8(sbRowKey.ToString());
request.Entries.Add(entry);
if (recordCount == _appSettings.BatchSize || insertCount == totalRecords - 1)
{
long startTime = Stopwatch.GetTimestamp();
long responseTime;
recordCount = 0;
try
{
#if DEBUG
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Thread: {threadNumber + 1} Inserting record {insertCount + 1}. Last rowkey {sbRowKey.ToString()} for table {_appSettings.TableName}");
#endif
BigtableClient.MutateRowsStream response = _client.MutateRows(request
, CallSettings.FromCallTiming(CallTiming.FromTimeout(TimeSpan.FromMilliseconds(_appSettings.MutateRowTimeOutInMilliSeconds))));
response.GrpcCall.ResponseHeadersAsync.Wait();
}
catch (Exception ex)
{
#if DEBUG
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception inserting record {insertCount + 1}. Last rowkey {sbRowKey.ToString()} for table {_appSettings.TableName}");
#endif
}
responseTime = (Stopwatch.GetTimestamp() - startTime) / (Stopwatch.Frequency / 100000);
histogramHelper.LoadHistogram.RecordValue(responseTime);
request = new MutateRowsRequest
{
TableNameAsTableName = _table
};
}
}
}
catch (Exception ex)
{
#if DEBUG
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} Exception to load data for table {_appSettings.TableName}. Error Message: {ex.Message}");
#endif
}
return 0;
}
// Constructing mutation for 1 row
private Mutation[] MutationsBuilder()
{
Mutation[] _columns = new Mutation[_appSettings.Columns];
for (int cellCount = 0; cellCount < _columns.Length; cellCount++)
{
_columns[cellCount] = Mutations.SetCell(_appSettings.ColumnFamily, $"{_appSettings.ColumnPrefix}{cellCount}", new BigtableByteString(RandomData()));
}
return _columns;
}
private Byte[] RandomData()
{
Byte[] b = new Byte[_appSettings.ColumnLength];
_rnd.NextBytes(b);
return b;
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Google.Cloud.Bigtable.ScanTest")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Google.Cloud.Bigtable.ScanTest")]
[assembly: System.Reflection.AssemblyTitleAttribute("Google.Cloud.Bigtable.ScanTest")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.deps.json
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.runtimeconfig.json
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.runtimeconfig.dev.json
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.dll
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.csprojResolveAssemblyReference.cache
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.csproj.CoreCompileInputs.cache
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.AssemblyInfoInputs.cache
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.AssemblyInfo.cs
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.pdb
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.dll
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\Debug\netcoreapp2.0\Google.Cloud.Bigtable.ScanTest.pdb
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.Admin.V2.dll
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.V2.dll
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.Admin.V2.pdb
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.Admin.V2.xml
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.V2.pdb
C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\bin\Debug\netcoreapp2.0\Google.Cloud.Bigtable.V2.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">C:\qlogic\google\qlogic\apis\Google.Cloud.Bigtable.V2\Google.Cloud.Bigtable.ScanTest\Google.Cloud.Bigtable.ScanTest\obj\project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Amrendra\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.4.0</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\build\netcoreapp2.0\Microsoft.NETCore.App.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\build\netcoreapp2.0\Microsoft.NETCore.App.props')" />
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\build\netcoreapp2.0\Microsoft.NETCore.App.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\build\netcoreapp2.0\Microsoft.NETCore.App.targets')" />
</ImportGroup>
</Project>
\ No newline at end of file
This diff could not be displayed because it is too large.
using Google.Cloud.Bigtable.V2;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
namespace Google.Cloud.Bigtable.ScanTest
{
class scanHelper
{
private AppSettings _appSettings;
private V2.TableName _table;
private BigtableClient _client;
public scanHelper(V2.TableName tbl)
{
_appSettings = Program.AppSetting;
_table = tbl;
_client = BigtableClient.Create();
}
public async Task scan(int batchLimit)
{
Stopwatch _startTime = Stopwatch.StartNew();
long _responseTime = 0;
Stopwatch _startRead = Stopwatch.StartNew();
try
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {_appSettings.TableName} read starting for batchsize {batchLimit}.");
long _scannedRecordInBatch = 0;
while (Program.ScanTime < _appSettings.ScanInterval)
{
_scannedRecordInBatch = 0;
ReadRowsRequest _readRequest = getReadRequest(batchLimit);
_startRead.Restart();
var response = _client.ReadRows(_readRequest);
++Program.ScanCount;
//response.GrpcCall.ResponseHeadersAsync.Wait();
while (await response.ResponseStream.MoveNext(default))
{
var current = response.ResponseStream.Current;
for (int index = 0; index < current.Chunks.Count;)
{
++Program.RecordScanned;
++_scannedRecordInBatch;
++index;
while (current.Chunks[index].RowKey.Length == 0)
{
++index;
if (index >= current.Chunks.Count)
break;
}
}
}
_startRead.Stop();
_responseTime = _startRead.ElapsedMilliseconds;
long _currentScanThroughput = _scannedRecordInBatch / _responseTime ;
histogramHelper.ThroughputHistogram.RecordValue(_currentScanThroughput);
histogramHelper.ScanResponseHistogram.RecordValue(_startRead.ElapsedMilliseconds);
#if DEBUG
//Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Recently scanned {_scannedRecordInBatch} in {_responseTime} milliseconds.");
#endif
Program.ThroughputTime += _responseTime;
}
}
catch (Exception ex)
{
_startTime.Stop();
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception during scan. Performed {Program.ScanCount} scans consuming {Program.RecordScanned} rows in {_startTime.ElapsedMilliseconds} milliseconds., error message {ex.Message}");
}
_startTime.Stop();
Program.ThroughputTime = _startTime.ElapsedMilliseconds;
}
private ReadRowsRequest getReadRequest(int limit)
{
Random rand = new Random();
int _startPosition = rand.Next(0, (int)_appSettings.Records);
StringBuilder sbStartRowKey = new StringBuilder(_appSettings.RowKeyPrefix + _startPosition.ToString("D" + _appSettings.RowKeySize));
//StringBuilder sbEndRowKey = new StringBuilder(_appSettings.RowKeyPrefix + (_startPosition + _appSettings.ScanLimit - 1).ToString("D" + _appSettings.RowKeySize));
Google.Protobuf.ByteString startRowKey = Google.Protobuf.ByteString.CopyFromUtf8(sbStartRowKey.ToString());
// Google.Protobuf.ByteString endRowKey = Google.Protobuf.ByteString.CopyFromUtf8(sbEndRowKey.ToString());
RowFilter _rowFilter = new RowFilter();
_rowFilter.FamilyNameRegexFilter = _appSettings.ColumnFamily;
_rowFilter.CellsPerColumnLimitFilter = 1;
List<RowRange> _rowRanges = new List<RowRange>();
_rowRanges.Add(new RowRange() { StartKeyClosed = startRowKey }); //, EndKeyClosed = endRowKey
ReadRowsRequest _readRequest = new ReadRowsRequest()
{
TableNameAsTableName = _table
,
Rows = new RowSet { RowRanges = { _rowRanges[0] } }
};
_readRequest.RowsLimit = limit;
_readRequest.Filter = _rowFilter;
return _readRequest;
}
}
}
using Google.Cloud.Bigtable.Admin.V2;
using System;
using System.Collections.Generic;
using System.Text;
namespace Google.Cloud.Bigtable.ScanTest
{
class tableHelper
{
private AppSettings _appSettings { get; set; }
private BigtableTableAdminClient _adminClient;
private V2.TableName _table;
public tableHelper()
{
this._appSettings = Program.AppSetting;
_adminClient = BigtableTableAdminClient.Create();
_appSettings.TableName = "perf123456";
dropTable();
}
public V2.TableName getTable()
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Checking existance of {_appSettings.TableName}");
bool _isTableExists = checkTable();
if (!_isTableExists)
{
while (!_isTableExists)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Creating table {_appSettings.TableName}.");
createTable();
_isTableExists = checkTable();
};
}
else
{
_table = new Google.Cloud.Bigtable.V2.TableName(_appSettings.ProjectId, _appSettings.InstanceId, _appSettings.TableName);
}
return _table;
}
private bool checkTable()
{
DateTime startTime = DateTime.Now;
try
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Checking table {_appSettings.TableName}.");
var response = _adminClient.GetTable(new Admin.V2.TableName(_appSettings.ProjectId, _appSettings.InstanceId, _appSettings.TableName), null);
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {_appSettings.TableName} exits.");
}
catch (Exception ex)
{
if (ex.Message.ToLower().Contains("table not found"))
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {_appSettings.TableName} not found.");
return false;
}
else
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception while checking table {_appSettings.TableName}. Error message: {ex.Message}.");
checkTable();
}
}
return true;
}
private void createTable()
{
try
{
var response = _adminClient.CreateTable(new InstanceName(_appSettings.ProjectId, _appSettings.InstanceId),
_appSettings.TableName,
new Table
{
Granularity = Table.Types.TimestampGranularity.Millis,
ColumnFamilies =
{
{ _appSettings.ColumnFamily, new ColumnFamily { GcRule = new GcRule { MaxNumVersions = 3 } } }
}
});
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table created {_appSettings.TableName} successfully.");
_table = new Google.Cloud.Bigtable.V2.TableName(_appSettings.ProjectId, _appSettings.InstanceId, _appSettings.TableName);
new loadDataHelper(_table).loadTable();
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception while creating table {_appSettings.TableName}. Error message: {ex.Message}.");
}
}
private void dropTable()
{
DateTime startTime = DateTime.Now;
try
{
_adminClient.DeleteTable(
new Admin.V2.TableName(_appSettings.ProjectId, _appSettings.InstanceId, _appSettings.TableName),
null);
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Table {_appSettings.TableName} deleted successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - Exception while deleting table {_appSettings.TableName}, error message: {ex.Message}");
}
}
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!