Commit Graph

95 Commits

Author SHA1 Message Date
Mazdak Farrokhzad 3be5c83d99 [WASM ABI 1.0] __call_reducer__ receives Identity & Address by value (#1607)
Signed-off-by: Mazdak Farrokhzad <twingoow@gmail.com>
Co-authored-by: Ingvar Stepanyan <me@rreverser.com>
Co-authored-by: Noa <coolreader18@gmail.com>
2024-08-19 22:20:57 +00:00
james gilles cbacc44f44 Change ResolveRefs to return a Result rather than an Option (#1565)
Signed-off-by: james gilles <jameshgilles@gmail.com>
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
2024-08-07 19:28:46 +00:00
Kim Altintop 711a6717c6 client-api: Remove publisher address (#1564) 2024-08-05 06:02:07 +00:00
Kim Altintop 4ffeff792b Remove support for the update reducer (#1557) 2024-07-31 06:26:06 +00:00
Jeremie Pelletier 3e6f91be89 Moving recovery code APIs under /identity and using POST (#1492)
Co-authored-by: Zeke Foppa <github.com/bfops>
2024-07-17 13:24:23 +00:00
Jeremie Pelletier cadf98623d Return empty success from /identity GET (#1491) 2024-07-16 17:28:30 +00:00
Shubham Mishra 276387d2b3 Timer Table Implementation (#1449)
Co-authored-by: Ingvar Stepanyan <me@rreverser.com>
2024-07-16 08:38:56 +00:00
Noa 10b151b999 Protobufectomy: server (#1077)
Co-authored-by: Phoebe Goldman <phoebe@goldman-tribe.org>
Co-authored-by: Jeremie Pelletier <jeremiep@gmail.com>
2024-07-12 18:02:18 +00:00
Noa 8be8fc1248 Fix inconsistent auth/identity creation (#735)
Co-authored-by: Zeke Foppa <github.com/bfops>
2024-06-25 19:41:09 +00:00
joshua-spacetime 8a3364ea69 perf(1351): Add a row count metric for subscriptions (#1435) 2024-06-14 18:32:22 +00:00
Noa 66112bbdf0 Impl subscribe subcommand & subscription smoketests (#1343)
Signed-off-by: Kim Altintop <kim@eagain.io>
Co-authored-by: Kim Altintop <kim@eagain.io>
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
2024-06-14 09:16:05 +00:00
Noa 6e052cb8dc Fix auth regression (#1413)
Signed-off-by: Tyler Cloutier <cloutiertyler@users.noreply.github.com>
Co-authored-by: Tyler Cloutier <cloutiertyler@users.noreply.github.com>
2024-06-12 22:57:30 +00:00
Kim Altintop 1044ebc652 core: Store address, owner and program bytes in st_module (#1305) 2024-06-10 10:25:16 +00:00
Jeremie Pelletier da23401368 Jeremie/notify sql (#1198)
* Notify subscriptions from SQL code path

* Remove blocking_broadcast_event

(From another PR, but helps tests to pass)

* Update from review

* Update from rebase

* cargo fmt

* cargo fmt

* cargo fmt

* update space.rs
2024-06-03 22:51:05 +00:00
Noa 6b1a3d3896 Module hotswapping (#1147) 2024-05-22 17:49:35 +00:00
Kim Altintop 2de147522d core: Collapse DBIC into HostController (#1186)
Make it so `HostController` manages both the module host (wasm
machinery) and the database (`RelationalDB` / `DatabaseInstanceContext`)
of spacetime databases deployed to a server.

The `DatabaseInstanceContextController` (DBIC) is removed in the
process.

This allows to make database accesses panic-safe, in that uncaught
panics will cause all resouces to be released and the database to be
restarted on subsequent access. This is a prerequisite for #985.

It also allows to move towards storage of the module binary directly in
the database / commitlog. This patch, however, makes some contortions in
order to **not** introduce a breaking change just yet.
2024-05-21 17:30:02 +00:00
Zeke Foppa 4cdb6609e4 Split up #735: auth.rs refactors (#871)
* [zeke/noa-router-shuffle]: bring over auth.rs changes from #735

* [zeke/noa-router-shuffle]: review
2024-05-13 17:33:53 +00:00
Mazdak Farrokhzad b55121cc83 use a custom FixedBitSet + optimize Page::iter_fixed_len (#1160) 2024-04-30 21:57:28 +00:00
Mazdak Farrokhzad e144c400c5 Redefine FieldName as (TableId, ColId) (#1165)
* redefine FieldName as (TableId, ColId)

* fix & refactor tests + move MemTable/Header test helpers test code
2024-04-30 20:59:20 +00:00
Mazdak Farrokhzad e1064eef29 Remove Column.col_id field (#1136)
* Remove redundant field Column.col_id

* remove redundant fn Header::ty

* - move extract_table_field to only use (#1137)

- remove unused get_index_by_field
2024-04-22 21:23:06 +00:00
Noa abdaf88563 Move lib::{name,recovery} to client-api-messages (#570) 2024-04-10 20:24:05 +00:00
Mazdak Farrokhzad 344861f290 use nohasher_hash and ahash instead of siphash13 (#1040)
* use nohasher_hash and ahash instead of siphash13

* re-export types in spacetimedb_data_structures::map
2024-04-05 17:30:51 +00:00
joshua-spacetime 99bd7ac591 perf(1024): Remove serialization from tx execution thread (#1027)
Closes #1024.

Before this change,
we would serialize messages **before** inserting into the send queue.

Because we commit the tx only after inserting into the send queue,
this meant we were holding onto the database lock unnecessarily.

After this change,
we serialize messages **after** inserting into the send queue.
This means we serialize only after committing the tx.
2024-03-27 16:06:10 +00:00
Mazdak Farrokhzad 9141a42622 Bump Rust to 1.77 + fix warnings + use Bound::map (#1020)
* bump Rust to 1.77 + fix warnings + use Bound::map

* use .truncate(true) for OpenOptions
2024-03-25 20:27:08 +00:00
Noa 540c519002 Rewrite smoketests as python unittests (#692)
* Rewrite smoketests as python unittests

* Get all tests working and do some work on parallel unittest

* Give up on parallel unittests

* Fix CI + address comments

* Fix skip-clippy arg confusion (just use the env var)

* fix ci

* Add comments
2024-03-14 02:47:38 +00:00
Noa 987d742baa Also poll handle_queue while flushing (#947)
* Also poll handle_queue while flushing

* Apply suggestions from code review

Co-authored-by: Phoebe Goldman <phoebe@clockworklabs.io>
Signed-off-by: Noa <coolreader18@gmail.com>

---------

Signed-off-by: Noa <coolreader18@gmail.com>
Co-authored-by: Phoebe Goldman <phoebe@clockworklabs.io>
2024-03-08 21:09:30 +00:00
Noa c6c0ba3051 Kick clients that are backing up their message channel (#930)
* Wrap ClientConnectionSender in an Arc everywhere

* Kick clients that are backing up their message channel

* Set tcp nodelay on incoming sockets
2024-03-06 22:39:17 +00:00
Shubham Mishra 71d435d096 proto changes (#924)
* proto changes

* messageId -> requestId

* fix oneoffquery

* add metrics for subscription

* requestId for reducer

* timer for reducer

* revert oneOffQeury related changes

* request_id u32 -> bytes

* use default RequestId for rust sdk

* added json changes

* added test

* clippy
2024-03-06 16:13:52 +00:00
Noa 5bcd5e2002 Use recv_many in ws_client_actor (#913) 2024-03-05 22:00:18 +00:00
Shubham Mishra 90032f8f58 Metric for request RTT (#872)
* Metric for request RTT

* moved metric from db to worker
2024-02-26 17:58:51 +00:00
Mazdak Farrokhzad 913801e22a - Make RelValue into a cow-like structure. (#869)
- Move it and friends from sats to vm.
- MemTable now stores a Vec<PV>.
- Other related improvements.

Co-authored-by: Phoebe Goldman <phoebe@goldman-tribe.org>
2024-02-21 20:07:39 +00:00
Tyler Cloutier c7878a7faf Adds an isolation_level argument to begin_mut_tx calls (#864) 2024-02-21 11:18:05 +00:00
Noa 6c292152aa Move legacy control_db from core to standalone (#732)
* Move legacy control_db to standalone

* Remove unused ArcEnv
2024-02-08 21:56:08 +00:00
Noa 4c5c8259ba Add a RwLock around module subscriptions to prevent a race condition (#792)
* Add a RwLock around module subscriptions to prevent a race condition

* lint

---------

Co-authored-by: Shubham Mishra <shubham@clockworklabs.io>
2024-02-08 08:47:12 +00:00
Noa 37658aae7e Add rust-version to Cargo.toml (#802)
* Add rust-version to Cargo.toml

* Use workspace inheritance to make bumping the spacetime version easier
2024-02-07 20:02:05 +00:00
Zeke Foppa 510c9aba5a pt1 (#785) 2024-02-05 15:45:14 +00:00
Noa 6f8d48060c Implement disk usage metering (#724)
* Reorganize energy types

* Implement disk usage metering

* Address review

* Remove task spawning from withdraw_energy

* Make EnergyQuanta unsigned

* Address review
2024-01-22 21:23:14 +00:00
Shubham Mishra e152784c3b feat: subscription to use read type tx (#685)
* made MutTxId -> MutTx

* adopt using ass. type for tx

* fmt

* read tx in datastore

lint

test

lint

made MutTxId -> MutTx

adopt using ass. type for tx

fmt

added more methods to TxId

fix test

Co-authored-by: Phoebe Goldman <phoebe@clockworklabs.io>
Signed-off-by: Shubham Mishra <shivam828787@gmail.com>

comments on Test

Co-authored-by: Phoebe Goldman <phoebe@clockworklabs.io>
Signed-off-by: Shubham Mishra <shivam828787@gmail.com>

fmt

typo

* fix imports

* clippy

* read tx in datastore

lint

test

lint

added read tx in subs

fmt

fix iters

* comments

* comments

* fix schema_for_table

* fmt

* merge queue helped

* moved all_read_query anaylyzing to vm

* lint

* added StateView trait

* lint

* fix tests for read-tx-in-subs (#695)

Intention of this PR is to keep diff of main PR smaller - feat: subscription to use read type tx #685 by separating trivial unit test related changes from main logic.
naming changes begin_tx() -> begin_mut_tx() and begin_read_tx() -> begin_tx()

* rollback_tx -> release_tx

* Compiler should work with Write Tx

* execute sql with mut tx

* fix result len

* compiler to work with write tx (#716)

* Compiler should work with Write Tx

* merge queue helped
2024-01-21 19:59:26 +00:00
John Detter 8524d244f3 Version upgrade to 0.8.1 (#729)
Co-authored-by: John Detter <no-reply@boppygames.gg>
2024-01-18 18:16:58 +00:00
Noa 4aa7f35161 Update to axum 0.7 (#697) 2024-01-04 20:58:23 +00:00
John Detter 79ff6dffc6 Version upgrade to 0.8.0 (#622)
Co-authored-by: John Detter <no-reply@boppygames.gg>
2023-12-04 13:19:25 -06:00
Kim Altintop 094288a6ec core: Make advertise_addr of Node optional (#618)
The semantics here changed slightly, in that a `None` address means that
the node is known but not currently connected.
2023-11-30 21:23:37 +01:00
Noa a33fa536bf Switch from wasmer to wasmtime (#457) 2023-11-17 01:23:58 +00:00
Nathaniel Richards 4cc6bb0f4b Created a route to check what emails are already connected to an identity (#477)
* Created a route to check what emails are already connected to an identity

* Delete .vscode/settings.json

Signed-off-by: Nathaniel Richards <46858886+NateTheDev1@users.noreply.github.com>

* Fixing errors

* Fixed trivial errors

---------

Signed-off-by: Nathaniel Richards <46858886+NateTheDev1@users.noreply.github.com>
2023-11-08 17:58:36 +01:00
John Detter dff23de939 Version upgrade to v0.7.3 (#536)
Co-authored-by: John Detter <no-reply@boppygames.gg>
2023-11-07 21:55:14 -06:00
John Detter b35e184051 Version Upgrade to v0.7.2-beta (#498)
Co-authored-by: John Detter <no-reply@boppygames.gg>
2023-10-30 16:53:06 -05:00
Noa 628dac120e Simplify/deabstract module_host_actor and wasmer_module (#417)
* Simplify/deabstract module_host_actor and wasmer_module

* DatabaseLogger doesn't need an external mutex
2023-10-27 15:53:55 -05:00
Noa bc54b735b5 Update/upgrade dependencies (#266)
* Update and dedup some deps

* Upgrade dependencies
2023-10-25 01:19:29 +01:00
Noa b78ae84f30 Replace hex Strings with Identity/Address where applicable (#300) 2023-10-20 17:51:50 +00:00
John Detter 5864bfa8d7 Version upgrade: v0.7.1-beta (#441)
Co-authored-by: John Detter <no-reply@boppygames.gg>
2023-10-17 16:57:36 -07:00