Proto commits in microsoft/LSKV

These 41 commits are when the Protocol Buffers files have changed:

Commit:1e054c2
Author:Andrew Jeffery
Committer:Andrew Jeffery

Add watch ability to bencher

Commit:3fdd657
Author:Andrew Jeffery

Make read modify write requests a transaction

Commit:4e87a5c
Author:Andrew Jeffery
Committer:Andrew Jeffery

Add etcd watch request and response proto definitions

Commit:b52603f
Author:Julien Maffre

Merge branch 'main' of github.com:microsoft/LSKV into server-streaming

Commit:e0e15dd
Author:Andrew Jeffery
Committer:GitHub

Bench updates (#177) * Add tags for wait requests to k6 * Fix start time in k6 * Switch back to sandbox-based store * Update notebooks with more plots * Specify enclave instead of sgx or virtual bool * Format * Use install of sandbox that corresponds to enclave * Fixup virtual and sgx configurations * Lower target rate in ci * Reduce space of k6 ci configurations * Run benchmarks in ccf container * Update title * Don't run etcd in perf system * Format * Sort imports * K6 grpc (#181) * Add tags for wait requests to k6 * Fix start time in k6 * Switch back to sandbox-based store * Update notebooks with more plots * Specify enclave instead of sgx or virtual bool * Format * Include grpc req duration in start_ms calc * Add some grpc stuff to requests in k6 * Fixup enclave configuration * Add proto to k6 configurations * Add service definition for etcd * Rename proto to content_type * Update k6 analysis * Format * Remove duplicated k6 function * Only connect grpc client if content type is grpc * Add tags for wait requests to k6 * Fix start time in k6 * Switch back to sandbox-based store * Update notebooks with more plots * Specify enclave instead of sgx or virtual bool * Format * Use install of sandbox that corresponds to enclave * Fixup virtual and sgx configurations * Lower target rate in ci * Reduce space of k6 ci configurations * Run benchmarks in ccf container * Update title * Don't run etcd in perf system * Format * Sort imports * K6 grpc (#181) * Add tags for wait requests to k6 * Fix start time in k6 * Switch back to sandbox-based store * Update notebooks with more plots * Specify enclave instead of sgx or virtual bool * Format * Include grpc req duration in start_ms calc * Add some grpc stuff to requests in k6 * Fixup enclave configuration * Add proto to k6 configurations * Add service definition for etcd * Rename proto to content_type * Update k6 analysis * Format * Remove duplicated k6 function * Only connect grpc client if content type is grpc * Update analysis lib to work with no variables in throughput plot * Add Piccolo bench (#180) * Add piccolo workload generation * Update perf system to use piccolo submitter * Add piccolo request * Update perf_configurations in ci * Ignore root parquet files * Update analysis for perf script * Update perf analysis notebook * Use installed ccf submit * Fix run-sgx * Shorten enclave name * Fix sgx package * Log out more frequently in ycsb benchmark * Update notebooks * Let throughput bar plot work with other dimensions * Update perf analysis * Update analysis to take configurable bench location * Specify enclave-platform on sandbox * Update notebooks * Fix license header * Fix notice check for binary files * Format benchmark files * Fix python lints * Update benchmark ci container to use ccf 4 dev0 * Don't build docker in benchmark pipeline

The documentation is generated from this commit.

Commit:1148249
Author:Andrew Jeffery

Add etcd watch request and response proto definitions

Commit:e3d8ba1
Author:Andrew Jeffery
Committer:GitHub

Add TxStatus endpoint (#175) * Add txstatus proto message types * Add txstatus endpoint * Add test for new tx status endpoint * Complain when failing to get tx status * Format * Add link to checking for commit

Commit:bcb2746
Author:Andrew Jeffery
Committer:GitHub

Status endpoint (#93) * Add status request and response to proto defs * Add skeleton status endpoint * Set leader in status * Set version * Set version * Read from map to get a txid and have post_commit run * Format proto * Add command adapter to json_grpc * Switch status endpoint to be command * Add status endpoint for test client * Test version returned from status endpoint * Add proto status comment * Format * Fix import order * Format * Format * Ignore all .out and .err files

Commit:163bbe7
Author:Andrew Jeffery
Committer:GitHub

Get build version in cmake (#167) * Get build version in cmake * Rename virtual-unsafe target

Commit:97e9c19
Author:Andrew Jeffery
Committer:Andrew Jeffery

Add go_package and receipt Service

Commit:d7eeae5
Author:Andrew Jeffery

Add more service definitions

Commit:1f8f089
Author:Andrew Jeffery

Format proto file

Commit:1f3a790
Author:Andrew Jeffery
Committer:Andrew Jeffery

Add range service rpc

Commit:d7c6c23
Author:Andrew Jeffery
Committer:Andrew Jeffery

Fix notice check (#164) * Simplify notice_check script * Add license header to k6.js * Update git ls-files for notice checks * Format * Fixup licenses * Redo notice check * Remove extra import * Fixup notice check * Move notice check to after python deps are installed

Commit:ef57850
Author:Andrew Jeffery
Committer:Andrew Jeffery

Format proto files (#163)

Commit:4845993
Author:Andrew Jeffery
Committer:GitHub

Fix notice check (#164) * Simplify notice_check script * Add license header to k6.js * Update git ls-files for notice checks * Format * Fixup licenses * Redo notice check * Remove extra import * Fixup notice check * Move notice check to after python deps are installed

Commit:acb8277
Author:Andrew Jeffery
Committer:GitHub

Format proto files (#163)

Commit:4b07bbd
Author:Andrew Jeffery
Committer:GitHub

Add committed revision and raft term in response header (#102) * Add committed revision and raft term in response header * Add split response header to doc diagrams

Commit:8e944d7
Author:Andrew Jeffery
Committer:GitHub

Add receipt claims for put, delete and txn (#139) * Add receipt claims for put and delete * Rename operation * Wire up install endpoint logic for receipt endpoint * Extract txid from request body for receipts * Update receipt types in proto * Add leaf components to proto * Fill in receipt data * Echo etcdctl command to stderr * Add receipts test script * Disable setting claims_digest in receipt * Fill header with committed revision for get_receipt * Fix script lint * Quickly document receipts * Re-set claims digest * Format * Add license * Add newline * Add receipts flow to docs * Separate out lskv gRPC extensions * Fixup readme * Update readme with receipt purpose * Format * Add cmake current binary dir to proto builds * Try adding extra includes or lskvserver * typo * Use set_allocated_* * Add txn requests to receipt claims * Populate txn requests in receipt claims * Update README.md Co-authored-by: Julien Maffre <42961061+jumaffre@users.noreply.github.com> * Change receipt types to use string * Format * Add responses in claims * Add macro to set custom claims * Remove extra add_enclave_library * Add receipt docs Co-authored-by: Heidi Howard <1835251+heidihoward@users.noreply.github.com> Co-authored-by: Julien Maffre <42961061+jumaffre@users.noreply.github.com>

Commit:fe4040f
Author:Andrew Jeffery

Add responses in claims

Commit:5925533
Author:Andrew Jeffery
Committer:Andrew Jeffery

Change receipt types to use string

Commit:299cb3b
Author:Andrew Jeffery

Add txn requests to receipt claims

Commit:5fc39b2
Author:Andrew Jeffery

Separate out lskv gRPC extensions

Commit:87d351e
Author:Andrew Jeffery

Fill in receipt data

Commit:0aed03d
Author:Andrew Jeffery

Add leaf components to proto

Commit:fb57eee
Author:Andrew Jeffery

Update receipt types in proto

Commit:6abf77b
Author:Andrew Jeffery

Wire up install endpoint logic for receipt endpoint

Commit:45784aa
Author:Andrew Jeffery

Rename operation

Commit:eced702
Author:Andrew Jeffery

Add receipt claims for put and delete

Commit:06b7dbf
Author:Andrew Jeffery
Committer:GitHub

Update to ccf-3.0.0-dev6 (#114) * Change dev5 to dev6 ccf release * Update status.proto to work with new release * Update hidden files

Commit:95dc958
Author:Andrew Jeffery
Committer:GitHub

Member list (#92) * Add memberlist request and response proto defs * Begin implementing member list * Use node_data for member list * Update to use CCF data for nodes * Set default name for member * Reduce verbosity

Commit:4f19fa0
Author:Andrew Jeffery

Add watch proto definitions

Commit:ca5aeee
Author:Julien Maffre
Committer:GitHub

Update to CCF 3.0.0-dev5 (#48)

Commit:5484d07
Author:Andrew Jeffery
Committer:GitHub

Implement lease compaction (#64) * Add lease message types * Add revoke * Format proto * Build leases.cpp * Randomly generate ids * Move logic to store * Add start time to lease * Add keep alive structure Doesn't currently work due to streams missing. * Implement adding keys with leases * Add handling of lease expiration into put and range * Remove keys when revoking a lease * Format * Add license notices * Add lease list api * Use user-provided ttl * Return an expired lease when it is missing * Enable lease tests * Update patch for lease tests and to be made from etcd root * Fix formatting * Rename to avoid value in leasestore * Remove lease checkpoint messages * Fix rename * Format * Fixup rebase * Add todo for moving revoke lease * Remove unnecessary const * Fix lints * Pass in current time to lease functions This makes it more consistent and allows us to use get_untrusted_host_time_v1. This function isn't static so we can't have our handlers be static either. * Add compaction endpoint

Commit:3647663
Author:Andrew Jeffery
Committer:GitHub

Leases (#55) * Add lease message types * Add revoke * Format proto * Build leases.cpp * Randomly generate ids * Move logic to store * Add start time to lease * Add keep alive structure Doesn't currently work due to streams missing. * Implement adding keys with leases * Add handling of lease expiration into put and range * Remove keys when revoking a lease * Format * Add license notices * Add lease list api * Use user-provided ttl * Return an expired lease when it is missing * Enable lease tests * Update patch for lease tests and to be made from etcd root * Fix formatting * Rename to avoid value in leasestore * Remove lease checkpoint messages * Fix rename * Format * Fixup rebase * Add todo for moving revoke lease * Remove unnecessary const * Fix lints * Pass in current time to lease functions This makes it more consistent and allows us to use get_untrusted_host_time_v1. This function isn't static so we can't have our handlers be static either. * Fix formatting * Pull duplicate types up to base class * Add build option for public maps * Format * Use option instead of if-set * Format again

Commit:4f8a326
Author:Andrew Jeffery
Committer:GitHub

Change etcd 3rdparty to submodule (#46)

Commit:89dd327
Author:Andrew Jeffery
Committer:GitHub

Implement txn endpoint (#31) * Add txn proto definitions * Patch txn_test.go's timeout * Add stub for txn * Implement some of txn * Use KVStore in Txn and add a comparison helper * Implement handling request ops * Return success in range if missing key * Use default value in txn compare if missing * Run txn tests * Ignore etcd default data dir * Make range read_only again * Apply suggestions

Commit:507000e
Author:Andrew Jeffery
Committer:GitHub

Implement delete range (#13) * Add DeleteRange* message types * Implement delete range endpoint Currently doesn't care about the given value of prev_kv but that can be added later. * Update etcd patch to not use tmpdir * Change to debug logs and set VERBOSE_LOGGING

Commit:3ea2f72
Author:Andrew Jeffery
Committer:GitHub

Add etcd tests (#17) * Add etcd tests checkout with some fixed tests * Add venv_ccf_sandbox and workspace to gitignore * Add testing information to readme * Add test make target * Add initial github action for testing * Set VENV_DIR * Allow using tmpdir * Move ccf-kvs test script * Use realpaths for tests script * Run tests in verbose mode * Return errors in app if requests use options that aren't implemented * Clean etcd dir for 3rd party * Add etcd patch for tests * Add makefile targets to work with patches * Rename patch so later ordering works * Test patch application before doing it * Patch etcd in build dir * Run tests from patched etcd in build dir * Use make target for tests * Allow tests to fail without blocking merge

Commit:ab0a508
Author:Julien Maffre

gRPC interface

Commit:89abf81
Author:Julien Maffre

Add protobuf