Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.9.0 changes #35

Merged
merged 218 commits into from
Jul 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
218 commits
Select commit Hold shift + click to select a range
7470d4c
Added basic CI/CD
DomPeliniAerospike May 23, 2024
305e8ce
Update integration_test.yml
DomPeliniAerospike May 23, 2024
892a9db
Update integration_test.yml
DomPeliniAerospike May 23, 2024
baaf967
Update integration_test.yml
DomPeliniAerospike May 23, 2024
de1b66d
Testing git-crypt
DomPeliniAerospike May 24, 2024
1c1fa7d
Fixed integration test to work with new features.conf
DomPeliniAerospike May 24, 2024
6d5fcab
typo
DomPeliniAerospike May 24, 2024
388164f
Update integration_test.yml
DomPeliniAerospike May 24, 2024
073c5d8
Update integration_test.yml
DomPeliniAerospike May 24, 2024
10c190a
testing encryption of file.
DomPeliniAerospike May 24, 2024
ecca7ed
Fixing features.conf
DomPeliniAerospike May 24, 2024
6f6dcb4
Initial commit
DomPeliniAerospike Jun 18, 2024
9b90d59
Enabled client to work with either Auth+TLS or plain text
DomPeliniAerospike Jun 21, 2024
4324c86
Finializing RBAC Functionality and tests
DomPeliniAerospike Jun 24, 2024
8ba080f
MTLS dirty commit
DomPeliniAerospike Jul 2, 2024
e962e27
Update README.md
DomPeliniAerospike Jul 8, 2024
f064588
Merge pull request #25 from aerospike/CI/CD-init
DomPeliniAerospike Jul 8, 2024
8d6a884
Added jwt to requirements.txt
DomPeliniAerospike Jul 8, 2024
57e8082
Update requirements.txt
DomPeliniAerospike Jul 8, 2024
2a96ccd
Fixed jwt install
DomPeliniAerospike Jul 8, 2024
f30771c
Update requirements.txt
DomPeliniAerospike Jul 8, 2024
290e0bb
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
0f8be02
Update requirements.txt
DomPeliniAerospike Jul 8, 2024
a236810
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
f177485
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
d72c10a
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
5417615
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
2039ccf
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
207122e
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
af213cf
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
7679284
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
a83b4dd
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
42c7ece
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
67786c8
Added features.conf to secrets
DomPeliniAerospike Jul 8, 2024
f6f0f4d
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
21a97a8
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
82072d4
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
2e918b4
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
1117bee
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
552cca5
Update integration_test.yml
DomPeliniAerospike Jul 8, 2024
88b3595
Update integration_test.yml
DomPeliniAerospike Jul 9, 2024
aef3eb7
Update integration_test.yml
DomPeliniAerospike Jul 9, 2024
30eac7b
auth_tls testing
DomPeliniAerospike Jul 10, 2024
7d73368
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
21b5218
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
8df107c
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
8621572
Update call_gen.sh
DomPeliniAerospike Jul 10, 2024
9fe293d
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
02e9d83
Update gen.sh
DomPeliniAerospike Jul 10, 2024
cc627d1
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
8e6c13a
Added script for normal execurtion
DomPeliniAerospike Jul 10, 2024
e043906
Update call_gen_normal.sh
DomPeliniAerospike Jul 10, 2024
ac2209b
Update utils.py
DomPeliniAerospike Jul 10, 2024
fc0fb24
Create __init__.py
DomPeliniAerospike Jul 10, 2024
c5b92d5
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
1a3c605
Update gen.sh
DomPeliniAerospike Jul 10, 2024
86ef6a2
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
4a5a385
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
ca8ca3a
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
a5cb481
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
9f0b548
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
6953432
Update aerospike-proximus.yml
DomPeliniAerospike Jul 10, 2024
3e965d8
Update aerospike-proximus.yml
DomPeliniAerospike Jul 10, 2024
d692279
update CI/CD
DomPeliniAerospike Jul 10, 2024
781441d
Added tls config
DomPeliniAerospike Jul 10, 2024
185a936
Update call_gen_tls.sh
DomPeliniAerospike Jul 10, 2024
fda6b77
updated host address
DomPeliniAerospike Jul 10, 2024
90ba079
Update integration_test.yml
DomPeliniAerospike Jul 10, 2024
991f198
Remove static files
DomPeliniAerospike Jul 11, 2024
0420a9c
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
ed5c7c5
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
362737a
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
8e9e803
Update gen.sh
DomPeliniAerospike Jul 11, 2024
517e379
Updated CI/CD
DomPeliniAerospike Jul 11, 2024
5fc08b7
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
9028a47
CI/CD update
DomPeliniAerospike Jul 11, 2024
d68e745
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
2ea6eba
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
c187d1f
uploading static files
DomPeliniAerospike Jul 11, 2024
59833bb
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
408007d
Added static files
DomPeliniAerospike Jul 11, 2024
7bceebd
Update aerospike-proximus.yml
DomPeliniAerospike Jul 11, 2024
10c624f
test
DomPeliniAerospike Jul 11, 2024
a9190c9
CI/CD tests
DomPeliniAerospike Jul 11, 2024
0ed057c
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
f8786e4
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
8e762eb
CI/CD update
DomPeliniAerospike Jul 11, 2024
89f1246
updated certs
DomPeliniAerospike Jul 11, 2024
f1a9949
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
d47658a
updated conftest.py
DomPeliniAerospike Jul 11, 2024
d348a48
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
f428850
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
09d8eaf
CI/CD update
DomPeliniAerospike Jul 11, 2024
3610e60
Update integration_test.yml
DomPeliniAerospike Jul 11, 2024
aaebfcf
CI/CD tests
DomPeliniAerospike Jul 11, 2024
f6824e9
Ci/CD update
DomPeliniAerospike Jul 12, 2024
6ff0b66
Update call_gen_normal.sh
DomPeliniAerospike Jul 12, 2024
70a1761
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
739c70b
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
f7da125
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
4884385
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
40a05ab
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
4e20634
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
6ce99a7
Update aerospike-proximus.yml
DomPeliniAerospike Jul 12, 2024
d25cdaf
CI/CD changes
DomPeliniAerospike Jul 12, 2024
2690853
CI/CD update
DomPeliniAerospike Jul 12, 2024
242933f
Ci?CD
DomPeliniAerospike Jul 12, 2024
f75591a
Update gen.sh
DomPeliniAerospike Jul 12, 2024
f0b0ee5
Update gen.sh
DomPeliniAerospike Jul 12, 2024
86d4d7e
Update gen.sh
DomPeliniAerospike Jul 12, 2024
1f33ea8
Update gen.sh
DomPeliniAerospike Jul 12, 2024
0635fe3
CI/CD Pipeline
DomPeliniAerospike Jul 12, 2024
a2c943d
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
016c5d8
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
d351bdf
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
62984a7
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
c07a2ad
Update integration_test.yml
DomPeliniAerospike Jul 12, 2024
8648ffc
Added service configuration and index_storage for index_create command
DomPeliniAerospike Jul 16, 2024
d6104ea
Flaky test fixes
DomPeliniAerospike Jul 16, 2024
66fd91c
Flaky test fixes
DomPeliniAerospike Jul 16, 2024
7df8dbe
Flaky test fix
DomPeliniAerospike Jul 16, 2024
3aa0ffe
Updated checkout and changed how files are moved in gen.sh
DomPeliniAerospike Jul 16, 2024
0d34984
Fixed deletion issue
DomPeliniAerospike Jul 16, 2024
53a8a60
Update gen.sh
DomPeliniAerospike Jul 16, 2024
370fd62
Update gen.sh
DomPeliniAerospike Jul 16, 2024
5e2b631
Update gen.sh
DomPeliniAerospike Jul 16, 2024
b7e3d29
Update gen.sh
DomPeliniAerospike Jul 16, 2024
8a256e4
Made test folder alert dev to fix command if files are added.
DomPeliniAerospike Jul 16, 2024
5b18b75
Merge pull request #32 from aerospike/Auth+TLS
DomPeliniAerospike Jul 16, 2024
f2f0d23
Development Release Candidate changes
DomPeliniAerospike Jul 17, 2024
c533281
Quick Patch
DomPeliniAerospike Jul 17, 2024
ab265ae
Locked dependencies
DomPeliniAerospike Jul 18, 2024
e5a5662
CLIENT-3036 CLIENT-3037 CLIENT-3041
DomPeliniAerospike Jul 18, 2024
c03965a
Update pyproject.toml
DomPeliniAerospike Jul 18, 2024
419f43f
Fixed tending logic and added version check
DomPeliniAerospike Jul 19, 2024
b4a451b
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
3613ad7
Tweaked configurations
DomPeliniAerospike Jul 19, 2024
2de0a06
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
df62a54
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
7001003
Shortened files, made tests more consistent
DomPeliniAerospike Jul 19, 2024
16ea71c
updating tests
DomPeliniAerospike Jul 19, 2024
2a6cfac
Update reusable-steps.yml
DomPeliniAerospike Jul 19, 2024
30602bb
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
5fdf58a
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
563de51
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
04a1e57
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
11834bb
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
ad3a8c9
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
be6def8
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
ac0a96c
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
2a04b6a
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
c2ed1ff
Reverted away from reusable-steps.yml
DomPeliniAerospike Jul 19, 2024
9887bd2
CI/CD improvments
DomPeliniAerospike Jul 19, 2024
f95c31b
Fixed testing bug
DomPeliniAerospike Jul 19, 2024
d664dd5
Change config gen permissions
DomPeliniAerospike Jul 19, 2024
1a0bdb4
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
ef56e5d
Fixed testing bug
DomPeliniAerospike Jul 19, 2024
103988f
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
30d87a6
Test debugging
DomPeliniAerospike Jul 19, 2024
e052a71
Fixing flaky tests
DomPeliniAerospike Jul 19, 2024
84f37ff
Update admin.py
DomPeliniAerospike Jul 19, 2024
1578d80
Update test_vector_search.py
DomPeliniAerospike Jul 19, 2024
93396a1
Debugging hanging tests
DomPeliniAerospike Jul 19, 2024
a6d033e
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
5719f47
Update channel_provider.py
DomPeliniAerospike Jul 19, 2024
4a25454
Update channel_provider.py
DomPeliniAerospike Jul 19, 2024
ca4925c
Update conftest.py
DomPeliniAerospike Jul 19, 2024
16ac2fd
Update conftest.py
DomPeliniAerospike Jul 19, 2024
6f0cfcd
Update integration_test.yml
DomPeliniAerospike Jul 19, 2024
463b28e
Fixing flaky tests
DomPeliniAerospike Jul 22, 2024
0f164a7
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
7efbba4
Update admin.py
DomPeliniAerospike Jul 22, 2024
f551ac9
Update client.py
DomPeliniAerospike Jul 22, 2024
737d4a6
Update conftest.py
DomPeliniAerospike Jul 22, 2024
cda50f9
Flaky tests
DomPeliniAerospike Jul 22, 2024
75e0eb7
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
e694370
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
68b55d9
Flaky tests
DomPeliniAerospike Jul 22, 2024
231ad93
Update debug.py
DomPeliniAerospike Jul 22, 2024
f4c81df
Everything right
DomPeliniAerospike Jul 22, 2024
5a2e507
Update debug.py
DomPeliniAerospike Jul 22, 2024
0179920
Update debug.py
DomPeliniAerospike Jul 22, 2024
80322a6
Update debug.py
DomPeliniAerospike Jul 22, 2024
45cf74c
Update conftest.py
DomPeliniAerospike Jul 22, 2024
e3e2cfc
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
9b5f021
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
3815f89
flaky tests
DomPeliniAerospike Jul 22, 2024
4114063
Flaky tests
DomPeliniAerospike Jul 22, 2024
059691d
Flaky tests
DomPeliniAerospike Jul 22, 2024
9d27d9a
Flaky test update
DomPeliniAerospike Jul 22, 2024
529474c
Added extra set and namespace testing
DomPeliniAerospike Jul 22, 2024
82b3e99
Flaky tests
DomPeliniAerospike Jul 22, 2024
ef7c872
Fixing flaky tests
DomPeliniAerospike Jul 22, 2024
5a32674
Update test_vector_search.py
DomPeliniAerospike Jul 22, 2024
38f08b3
Update test_vector_search.py
DomPeliniAerospike Jul 22, 2024
e762735
Fixing flaky tests
DomPeliniAerospike Jul 22, 2024
627527b
Changed local_latency flag
DomPeliniAerospike Jul 22, 2024
7da4ccb
Flaky tests
DomPeliniAerospike Jul 22, 2024
25d3e7b
Fixing flaky tests
DomPeliniAerospike Jul 22, 2024
fc2553e
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
fb23cdb
Added changes from final review
DomPeliniAerospike Jul 22, 2024
740d082
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
0d682a7
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
c763e65
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
50ef88b
Improved error handling
DomPeliniAerospike Jul 22, 2024
56ed564
Fixed spacing
DomPeliniAerospike Jul 22, 2024
54bd524
Corrected syntax
DomPeliniAerospike Jul 22, 2024
ab590a5
Update integration_test.yml
DomPeliniAerospike Jul 22, 2024
cba1722
Added changes from Jesse's review
DomPeliniAerospike Jul 23, 2024
550571b
Polished documentation
DomPeliniAerospike Jul 23, 2024
fa89645
Update templates/service.config.json.template
DomPeliniAerospike Jul 23, 2024
39648cb
Update admin.py
DomPeliniAerospike Jul 23, 2024
dbdb1d7
Merge branch '0.9.0-Changes' of https://github.com/aerospike/avs-clie…
DomPeliniAerospike Jul 23, 2024
dc8546f
Update integration_test.yml
DomPeliniAerospike Jul 23, 2024
aab4916
Update integration_test.yml
DomPeliniAerospike Jul 23, 2024
c1bad93
Changed max_examples to 1
DomPeliniAerospike Jul 23, 2024
a2dbc10
Fixed Jesse comments
DomPeliniAerospike Jul 23, 2024
a19f6e1
Update pyproject.toml
DomPeliniAerospike Jul 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
691 changes: 691 additions & 0 deletions .github/workflows/integration_test.yml

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,11 @@ cython_debug/
# Vector search test files
tests/siftsmall/*
tests/siftsmall.tar.gz
tests/features.conf
tests/assets/features.conf

# Notes
notes.txt

public-key.asc
public-key.asc

4 changes: 2 additions & 2 deletions docs/aio.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
aio Module
=====================
Asynchronous Clients leveraging Asyncio
========================================

This module contains clients with coroutine methods used for asynchronous programming.

Expand Down
20 changes: 10 additions & 10 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'aerospike-vector-search'
copyright = '2024, Dominic Pelini'
author = 'Dominic Pelini'
release = '0.6.1'
project = "aerospike-vector-search"
copyright = "2024, Dominic Pelini"
author = "Dominic Pelini"
release = "0.6.1"

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = [
'sphinx.ext.autodoc',
'sphinx_rtd_theme',
"sphinx.ext.autodoc",
"sphinx_rtd_theme",
]

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
templates_path = ["_templates"]
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
html_theme = "sphinx_rtd_theme"
html_static_path = ["_static"]
3 changes: 1 addition & 2 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ Please explore the modules below for more information on API usage and details.
:caption: Contents:

aio
admin
client
sync
types


Expand Down
12 changes: 12 additions & 0 deletions docs/sync.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Synchronous Clients
=====================

This module contains clients with coroutine methods used for asynchronous programming.
DomPeliniAerospike marked this conversation as resolved.
Show resolved Hide resolved


.. toctree::
:maxdepth: 2
:caption: Contents:

admin
client
20 changes: 11 additions & 9 deletions proto/auth.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,24 @@ syntax = "proto3";
package aerospike.vector;

option go_package = "aerospike.com/vector/protos/";
option java_package = "com.aerospike.vector.client";
option java_package = "com.aerospike.vector.client.proto";
option java_multiple_files = true;

// Auth service
service AuthService {
rpc Get(AerospikeAuthRequest) returns (AerospikeAuthResponse) {}
}
import "types.proto";

// An auth request to get an access token to perform operations on Aerospike
// database.
message AerospikeAuthRequest {
string username = 1;
string password = 2;
message AuthRequest {
Credentials credentials = 1;
}

// An auth token to perform operations on Aerospike database.
message AerospikeAuthResponse {
message AuthResponse {
string token = 1;
}

// Auth service
service AuthService {
// Request authentication.
rpc Authenticate(AuthRequest) returns (AuthResponse) {}
}
28 changes: 26 additions & 2 deletions proto/index.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ syntax = "proto3";
package aerospike.vector;

option go_package = "aerospike.com/vector/protos/";
option java_package = "com.aerospike.vector.client";
option java_package = "com.aerospike.vector.client.proto";
option java_multiple_files = true;

import "google/protobuf/empty.proto";
Expand All @@ -14,11 +14,32 @@ message IndexStatusResponse {
int64 unmergedRecordCount = 2;
}

message GcInvalidVerticesRequest {
IndexId indexId = 1;

// Vertices identified as invalid before cutoff timestamp (Unix timestamp) are garbage collected.
int64 cutoffTimestamp = 2;
}

message IndexUpdateRequest {
IndexId indexId = 1;

// Optional labels associated with the index.
map<string, string> labels = 2;

oneof update {
HnswIndexUpdate hnswIndexUpdate = 3;
}
}

// Service to manage indices.
service IndexService {
// Create an index.
rpc Create(IndexDefinition) returns (google.protobuf.Empty) {}

// Create an index.
rpc Update(IndexUpdateRequest) returns (google.protobuf.Empty) {}

// Drop an index.
rpc Drop(IndexId) returns (google.protobuf.Empty) {}

Expand All @@ -31,4 +52,7 @@ service IndexService {
// Query status of an index.
// NOTE: API is subject to change.
rpc GetStatus(IndexId) returns (IndexStatusResponse) {}
}

// Garbage collect vertices identified as invalid before cutoff timestamp.
rpc GcInvalidVertices(GcInvalidVerticesRequest) returns (google.protobuf.Empty) {}
}
21 changes: 16 additions & 5 deletions proto/transact.proto
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@

syntax = "proto3";

package aerospike.vector;

option go_package = "aerospike.com/vector/protos/";
option java_package = "com.aerospike.vector.client";
option java_package = "com.aerospike.vector.client.proto";
option java_multiple_files = true;

import "google/protobuf/empty.proto";
Expand All @@ -23,6 +22,14 @@ enum WriteType {
// Insert / create the record if it does not exists.
// Fails if the record already exist.
INSERT_ONLY = 2;

// Replace all fields in the record if it exists, else create the
// record if it does not exists.
REPLACE = 3;

// Replace all fields in the record if it exists.
// Fails if the record does not exist.
REPLACE_ONLY = 4;
}

// Put request to insert/update a record.
Expand All @@ -35,6 +42,10 @@ message PutRequest {

// The record fields.
repeated Field fields = 3;

// Ignore the in-memory queue full error. These records would be written to
// storage and later, the index healer would pick for indexing.
bool ignoreMemQueueFull = 4;
}

// Get request to insert/update a record.
Expand All @@ -43,7 +54,7 @@ message GetRequest {
Key key = 1;

// The field selector.
ProjectionSpec projectionSpec = 2;
ProjectionSpec projection = 2;
}

// Check if a record exists.
Expand Down Expand Up @@ -115,7 +126,7 @@ message VectorSearchRequest {
}

// Record transaction services.
service Transact {
service TransactService {
// Update/insert records.
rpc Put(PutRequest) returns (google.protobuf.Empty) {}

Expand All @@ -133,4 +144,4 @@ service Transact {

// Perform a vector nearest neighbor search.
rpc VectorSearch(VectorSearchRequest) returns (stream Neighbor) {}
}
}
120 changes: 113 additions & 7 deletions proto/types.proto
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@

syntax = "proto3";

package aerospike.vector;

option go_package = "aerospike.com/vector/protos/";
option java_package = "com.aerospike.vector.client";
option java_package = "com.aerospike.vector.client.proto";
option java_multiple_files = true;

// A record key.
Expand Down Expand Up @@ -187,16 +186,77 @@ message HnswParams {

// Configures batching behaviour for batch based index update.
HnswBatchingParams batchingParams = 4;

// Maximum size of in-memory queue for inserted/updated vector records.
// If the queue is full the record upsert will either be rejected with
// a RESOURCE_EXHAUSTED error or written to storage for index healer to
// later pick the record for indexing based on the put option.
// Defaults to global indexing config configured for the VectorDB.
optional uint32 maxMemQueueSize = 5;

// Configures caching for Hnsw Index.
HnswCachingParams cachingParams = 6;

// Configures index healer params.
HnswHealerParams healerParams = 7;

// Configures merge of batch indices to main index.
HnswIndexMergeParams mergeParams = 8;
}

// Params for the HNSW index search
// Params for the HNSW index search.
message HnswSearchParams {
// The default number of candidate nearest neighbors shortlisted during search.
// Larger values provide better recall at the cost of longer search times.
// The default is value set in HnswParams for the index.
optional uint32 ef = 1;
}

// Params to configure Hnsw batch index into main index.
message HnswIndexMergeParams {
// The number of vectors merged in parallel from a batch index to main index.
// Defaults to global indexing config configured for the VectorDB.
optional uint32 parallelism = 1;
}

// Params to configure Hnsw index cache
message HnswCachingParams {
// Maximum number of entries to cache.
// Defaults to the global cache config configured for the VectorDB.
optional uint64 maxEntries = 1;

// A cache entry will expire after this time in milliseconds has
// expired after the entry was added to cache.
// Defaults to the global cache config configured for the VectorDB.
optional uint64 expiry = 2;
}

// Params to configure Hnsw index cache
message HnswHealerParams {
// Maximum allowed record scan rate per vector db node.
// Defaults to the global healer config configured for the VectorDB.
optional uint32 maxScanRatePerNode = 1;

// Maximum number of records in a single scanned page.
// Defaults to the global healer config configured for the VectorDB.
optional uint32 maxScanPageSize = 2;

// Percentage of good records randomly selected for reindexing in a healer cycle.
// Defaults to the global healer config configured for the VectorDB.
optional float reindexPercent = 3;

// The time delay, in milliseconds, between the termination of a healer run
// and the commencement of the next one for an index. It only guarantees
// that the next index healer run for an index will not be scheduled before
// this time delay.
// Defaults to the global healer config configured for the VectorDB.
optional uint64 scheduleDelay = 4;

// Maximum number of records to heal in parallel.
// Defaults to the global healer config configured for the VectorDB.
optional uint32 parallelism = 5;
}

// Configures batching behaviour for batch based index update.
message HnswBatchingParams {
// Maximum number of records to fit in a batch.
Expand All @@ -206,10 +266,28 @@ message HnswBatchingParams {
// The maximum amount of time in milliseconds to wait before finalizing a batch.
// The default value is 10000.
optional uint32 interval = 2;
}

// Message to update a HNSW index parameters.
message HnswIndexUpdate {
// Configures batching behaviour for batch based index update.
optional HnswBatchingParams batchingParams = 1;

// Disables batching for index updates.
// Default is false meaning batching is enabled.
optional bool disabled = 3;
// Maximum size of in-memory queue for inserted/updated vector records.
// If the queue is full the record upsert will either be rejected with
// a RESOURCE_EXHAUSTED error or written to storage for index healer to
// later pick the record for indexing based on the put option.
// Defaults to global indexing config configured for the VectorDB.
optional uint32 maxMemQueueSize = 2;

// Configures caching for Hnsw Index.
optional HnswCachingParams cachingParams = 3;

// Configures index healer params.
optional HnswHealerParams healerParams = 4;

// Configures merge of batch indices to main index.
optional HnswIndexMergeParams mergeParams = 5;
}

// Index storage configuration
Expand Down Expand Up @@ -262,7 +340,35 @@ message IndexDefinitionList {
repeated IndexDefinition indices = 1;
}

// A role.
message Role {
// Role's unique name/id
string id = 1;
}

// A user.
message User {
// User's username
string username = 1;

// Granted roles
repeated string roles = 2;
}

// Authentication credentials.
message Credentials {
string username = 1;
oneof credentials {
PasswordCredentials passwordCredentials = 2;
}
}

// Password credentials.
message PasswordCredentials {
string password = 1;
}

// A boolean type
message Boolean {
bool value = 1;
}
}
Loading
Loading