Skip to content

Commit

Permalink
Revert "indexer: cp sequence number for tx indices query perf (#16617…
Browse files Browse the repository at this point in the history
…)" (#16816)

This reverts commit 75afd6c.

## Description 

This is an indexer breaking change and as a result should not be merged
just yet before the corresponding backfill is done.

## Test Plan 

test on benchmark to make sure that after this revert, the schema is
compatible with one before.

## Prevention Plan

next time for breaking change, I will add `[NO COMMIT] indexer breaking
change` as the prefix.

---
If your changes are not user-facing and do not break anything, you can
skip the following section. Otherwise, please briefly describe what has
changed under the Release Notes section.

### Type of Change (Check all that apply)

- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration

### Release notes
  • Loading branch information
gegaowp authored Mar 25, 2024
1 parent e1c5638 commit d4ef593
Show file tree
Hide file tree
Showing 14 changed files with 71 additions and 85 deletions.

This file was deleted.

47 changes: 0 additions & 47 deletions crates/sui-indexer/migrations/2023-10-06-204335_tx_indices/up.sql

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE IF EXISTS tx_recipients;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- Your SQL goes here
CREATE TABLE tx_recipients (
tx_sequence_number BIGINT NOT NULL,
-- SuiAddress in bytes.
recipient BYTEA NOT NULL,
PRIMARY KEY(recipient, tx_sequence_number)
);
CREATE INDEX tx_recipients_tx_sequence_number_index ON tx_recipients (tx_sequence_number ASC);
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE IF EXISTS tx_senders;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- Your SQL goes here
CREATE TABLE tx_senders (
tx_sequence_number BIGINT NOT NULL,
-- SuiAddress in bytes.
sender BYTEA NOT NULL,
PRIMARY KEY(sender, tx_sequence_number)
);
CREATE INDEX tx_senders_tx_sequence_number_index ON tx_senders (tx_sequence_number ASC);
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE IF EXISTS tx_input_objects;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Your SQL goes here
CREATE TABLE tx_input_objects (
tx_sequence_number BIGINT NOT NULL,
-- Object ID in bytes.
object_id BYTEA NOT NULL,
PRIMARY KEY(object_id, tx_sequence_number)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE IF EXISTS tx_changed_objects;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Your SQL goes here
CREATE TABLE tx_changed_objects (
tx_sequence_number BIGINT NOT NULL,
-- Object Id in bytes.
object_id BYTEA NOT NULL,
PRIMARY KEY(object_id, tx_sequence_number)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE IF EXISTS tx_calls;
14 changes: 14 additions & 0 deletions crates/sui-indexer/migrations/2023-10-06-204400_tx_calls/up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-- Your SQL goes here
CREATE TABLE tx_calls (
tx_sequence_number BIGINT NOT NULL,
package BYTEA NOT NULL,
module TEXT NOT NULL,
func TEXT NOT NULL,
-- 1. Using Primary Key as a unique index.
-- 2. Diesel does not like tables with no primary key.
PRIMARY KEY(package, tx_sequence_number)
);

CREATE INDEX tx_calls_module ON tx_calls (package, module, tx_sequence_number);
CREATE INDEX tx_calls_func ON tx_calls (package, module, func, tx_sequence_number);
CREATE INDEX tx_calls_tx_sequence_number ON tx_calls (tx_sequence_number);
35 changes: 12 additions & 23 deletions crates/sui-indexer/src/models/tx_indices.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,41 +20,36 @@ pub struct TxDigest {
}

#[derive(Queryable, Insertable, Debug, Clone, Default)]
#[diesel(table_name = tx_senders)]
pub struct StoredTxSenders {
pub cp_sequence_number: i64,
#[diesel(table_name = tx_input_objects)]
pub struct StoredTxInputObject {
pub tx_sequence_number: i64,
pub sender: Vec<u8>,
pub object_id: Vec<u8>,
}

#[derive(Queryable, Insertable, Debug, Clone, Default)]
#[diesel(table_name = tx_recipients)]
pub struct StoredTxRecipients {
pub cp_sequence_number: i64,
#[diesel(table_name = tx_changed_objects)]
pub struct StoredTxChangedObject {
pub tx_sequence_number: i64,
pub recipient: Vec<u8>,
pub object_id: Vec<u8>,
}

#[derive(Queryable, Insertable, Debug, Clone, Default)]
#[diesel(table_name = tx_input_objects)]
pub struct StoredTxInputObject {
pub cp_sequence_number: i64,
#[diesel(table_name = tx_senders)]
pub struct StoredTxSenders {
pub tx_sequence_number: i64,
pub object_id: Vec<u8>,
pub sender: Vec<u8>,
}

#[derive(Queryable, Insertable, Debug, Clone, Default)]
#[diesel(table_name = tx_changed_objects)]
pub struct StoredTxChangedObject {
pub cp_sequence_number: i64,
#[diesel(table_name = tx_recipients)]
pub struct StoredTxRecipients {
pub tx_sequence_number: i64,
pub object_id: Vec<u8>,
pub recipient: Vec<u8>,
}

#[derive(Queryable, Insertable, Debug, Clone, Default)]
#[diesel(table_name = tx_calls)]
pub struct StoredTxCalls {
pub cp_sequence_number: i64,
pub tx_sequence_number: i64,
pub package: Vec<u8>,
pub module: String,
Expand All @@ -73,12 +68,10 @@ impl TxIndex {
Vec<StoredTxCalls>,
) {
let tx_sequence_number = self.tx_sequence_number as i64;
let cp_sequence_number = self.checkpoint_sequence_number as i64;
let tx_senders = self
.senders
.iter()
.map(|s| StoredTxSenders {
cp_sequence_number,
tx_sequence_number,
sender: s.to_vec(),
})
Expand All @@ -87,7 +80,6 @@ impl TxIndex {
.recipients
.iter()
.map(|s| StoredTxRecipients {
cp_sequence_number,
tx_sequence_number,
recipient: s.to_vec(),
})
Expand All @@ -96,7 +88,6 @@ impl TxIndex {
.input_objects
.iter()
.map(|o| StoredTxInputObject {
cp_sequence_number,
tx_sequence_number,
object_id: bcs::to_bytes(&o).unwrap(),
})
Expand All @@ -105,7 +96,6 @@ impl TxIndex {
.changed_objects
.iter()
.map(|o| StoredTxChangedObject {
cp_sequence_number,
tx_sequence_number,
object_id: bcs::to_bytes(&o).unwrap(),
})
Expand All @@ -114,7 +104,6 @@ impl TxIndex {
.move_calls
.iter()
.map(|(p, m, f)| StoredTxCalls {
cp_sequence_number,
tx_sequence_number,
package: p.to_vec(),
module: m.to_string(),
Expand Down
15 changes: 5 additions & 10 deletions crates/sui-indexer/src/schema.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ diesel::table! {
}

diesel::table! {
tx_calls (package, tx_sequence_number, cp_sequence_number) {
cp_sequence_number -> Int8,
tx_calls (package, tx_sequence_number) {
tx_sequence_number -> Int8,
package -> Bytea,
module -> Text,
Expand All @@ -200,32 +199,28 @@ diesel::table! {
}

diesel::table! {
tx_changed_objects (object_id, tx_sequence_number, cp_sequence_number) {
cp_sequence_number -> Int8,
tx_changed_objects (object_id, tx_sequence_number) {
tx_sequence_number -> Int8,
object_id -> Bytea,
}
}

diesel::table! {
tx_input_objects (object_id, tx_sequence_number, cp_sequence_number) {
cp_sequence_number -> Int8,
tx_input_objects (object_id, tx_sequence_number) {
tx_sequence_number -> Int8,
object_id -> Bytea,
}
}

diesel::table! {
tx_recipients (recipient, tx_sequence_number, cp_sequence_number) {
cp_sequence_number -> Int8,
tx_recipients (recipient, tx_sequence_number) {
tx_sequence_number -> Int8,
recipient -> Bytea,
}
}

diesel::table! {
tx_senders (sender, tx_sequence_number, cp_sequence_number) {
cp_sequence_number -> Int8,
tx_senders (sender, tx_sequence_number) {
tx_sequence_number -> Int8,
sender -> Bytea,
}
Expand Down

0 comments on commit d4ef593

Please sign in to comment.