Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions sql/00-create-user.sql
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
CREATE extension ltree;
CREATE DATABASE blobber_meta;

\connect blobber_meta;
CREATE USER blobber_user WITH ENCRYPTED PASSWORD 'blobber';
GRANT ALL PRIVILEGES ON DATABASE blobber_meta TO blobber_user;
89 changes: 86 additions & 3 deletions sql/01-create-table.sql
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,23 @@ $$ language 'plpgsql';

CREATE TABLE allocations(
id VARCHAR (64) PRIMARY KEY,
tx VARCHAR (64) NOT NULL,
size BIGINT NOT NULL DEFAULT 0,
used_size BIGINT NOT NULL DEFAULT 0,
owner_id VARCHAR(64) NOT NULL,
owner_public_key VARCHAR(256) NOT NULL,
payer_id VARCHAR(64) NOT NULL,
repairer_id VARCHAR(64) NOT NULL,
owner_public_key VARCHAR(512) NOT NULL,
expiration_date BIGINT NOT NULL,
allocation_root VARCHAR(255) NOT NULL DEFAULT '',
blobber_size BIGINT NOT NULL DEFAULT 0,
blobber_size_used BIGINT NOT NULL DEFAULT 0,
latest_redeemed_write_marker VARCHAR(255),
is_redeem_required BOOLEAN,
is_immutable BOOLEAN NOT NULL,
cleaned_up BOOLEAN NOT NULL DEFAULT FALSE,
finalized BOOLEAN NOT NULL DEFAULT FALSE,
time_unit BIGINT NOT NULL DEFAULT 172800000000000,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
);
Expand Down Expand Up @@ -52,6 +59,49 @@ CREATE TABLE allocation_changes(

CREATE TRIGGER allocation_changes_modtime BEFORE UPDATE ON allocation_changes FOR EACH ROW EXECUTE PROCEDURE update_modified_column();

CREATE TABLE terms (
id bigserial,
blobber_id varchar(64) NOT NULL,
allocation_id varchar(64) REFERENCES allocations (id),
read_price bigint NOT NULL,
write_price bigint NOT NULL,

PRIMARY KEY (id)
);

-- clients' pending reads / writes
CREATE TABLE pendings (
id bigserial,
client_id varchar(64) NOT NULL,
allocation_id varchar(64) NOT NULL,
blobber_id varchar(64) NOT NULL,
pending_write bigint NOT NULL DEFAULT 0, -- number of pending bytes

PRIMARY KEY (id)
);

CREATE TABLE read_pools (
pool_id text NOT NULL, -- unique
client_id varchar(64) NOT NULL,
blobber_id varchar(64) NOT NULL,
allocation_id varchar(64) NOT NULL,
balance bigint NOT NULL,
expire_at bigint NOT NULL,

PRIMARY KEY (pool_id)
);

CREATE TABLE write_pools (
pool_id text NOT NULL, -- unique
client_id varchar(64) NOT NULL,
blobber_id varchar(64) NOT NULL,
allocation_id varchar(64) NOT NULL,
balance bigint NOT NULL,
expire_at bigint NOT NULL,

PRIMARY KEY (pool_id)
);

CREATE TABLE reference_objects (
id BIGSERIAL PRIMARY KEY,
lookup_hash VARCHAR (64) NOT NULL,
Expand All @@ -67,6 +117,7 @@ CREATE TABLE reference_objects (
custom_meta TEXT NOT NULL,
content_hash VARCHAR(64) NOT NULL,
size BIGINT NOT NULL DEFAULT 0,
chunk_size INT NOT NULL DEFAULT 65536,
merkle_root VARCHAR(64) NOT NULL,
actual_file_size BIGINT NOT NULL DEFAULT 0,
actual_file_hash VARCHAR(64) NOT NULL,
Expand All @@ -77,6 +128,8 @@ CREATE TABLE reference_objects (
actual_thumbnail_size BIGINT NOT NULL DEFAULT 0,
actual_thumbnail_hash VARCHAR(64) NOT NULL,
encrypted_key TEXT,
attributes JSON DEFAULT '{}'::jsonb,
on_cloud BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMP
Expand All @@ -98,7 +151,7 @@ CREATE TABLE write_markers (
redeem_retries INT NOT NULL DEFAULT 0,
close_txn_id VARCHAR(64),
connection_id VARCHAR(64) NOT NULL,
client_key VARCHAR(256) NOT NULL,
client_key VARCHAR(512) NOT NULL,
sequence BIGSERIAL UNIQUE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
Expand All @@ -108,12 +161,15 @@ CREATE TRIGGER write_markers_modtime BEFORE UPDATE ON write_markers FOR EACH ROW

CREATE TABLE read_markers (
client_id VARCHAR(64) NOT NULL PRIMARY KEY,
client_public_key VARCHAR(256) NOT NULL,
client_public_key VARCHAR(512) NOT NULL,
blobber_id VARCHAR(64) NOT NULL,
allocation_id VARCHAR(64) NOT NULL,
owner_id VARCHAR(64) NOT NULL,
payer_id VARCHAR(64) NOT NULL,
auth_ticket JSON,
timestamp BIGINT NOT NULL,
counter BIGINT NOT NULL DEFAULT 0,
suspend BIGINT NOT NULL DEFAULT -1,
signature VARCHAR(256) NOT NULL,
latest_redeemed_rm JSON,
redeem_required boolean,
Expand Down Expand Up @@ -163,3 +219,30 @@ CREATE TABLE file_stats (
);

CREATE TRIGGER file_stats_modtime BEFORE UPDATE ON file_stats FOR EACH ROW EXECUTE PROCEDURE update_modified_column();

CREATE TABLE commit_meta_txns (
ref_id BIGSERIAL NOT NULL,
txn_id VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);

CREATE TABLE collaborators (
ref_id BIGSERIAL NOT NULL,
client_id VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);

CREATE TABLE marketplace_share_info (
id BIGSERIAL PRIMARY KEY,
owner_id VARCHAR(64) NOT NULL,
client_id VARCHAR(64) NOT NULL,
file_path_hash TEXT NOT NULL,
re_encryption_key TEXT NOT NULL,
client_encryption_public_key TEXT NOT NULL,
expiry_at TIMESTAMP NULL,
revoked BOOLEAN NOT NULL DEFAULT false,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
);

CREATE TRIGGER share_info_modtime BEFORE UPDATE ON marketplace_share_info FOR EACH ROW EXECUTE PROCEDURE update_modified_column();
35 changes: 35 additions & 0 deletions sql/02-create-indexes.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
\connect blobber_meta;
BEGIN;
DROP INDEX IF EXISTS idx_unique_allocations_tx;
CREATE UNIQUE INDEX idx_unique_allocations_tx ON allocations (tx);

DROP INDEX IF EXISTS idx_pendings_cab;
CREATE UNIQUE INDEX idx_pendings_cab ON pendings (client_id, allocation_id, blobber_id);

DROP INDEX IF EXISTS idx_read_pools_cab;
CREATE INDEX idx_read_pools_cab ON read_pools (client_id, allocation_id, blobber_id);

DROP INDEX IF EXISTS idx_write_pools_cab;
CREATE INDEX idx_write_pools_cab ON write_pools (client_id, allocation_id, blobber_id);

-- TODO one of path_idx and idx_reference_objects_for_path is redundant
-- Create index on path column; It cannot be Unique index because of soft delete by gorm
DROP INDEX IF EXISTS path_idx;
CREATE INDEX path_idx ON reference_objects (path);

DROP INDEX IF EXISTS update_idx;
CREATE INDEX update_idx ON reference_objects (updated_at);

DROP INDEX IF EXISTS idx_reference_objects_for_lookup_hash;
CREATE INDEX idx_reference_objects_for_lookup_hash ON reference_objects(allocation_id, lookup_hash);

DROP INDEX IF EXISTS idx_reference_objects_for_path;
CREATE INDEX idx_reference_objects_for_path ON reference_objects(allocation_id, path);

DROP INDEX IF EXISTS idx_marketplace_share_info_for_owner;
CREATE INDEX idx_marketplace_share_info_for_owner ON marketplace_share_info(owner_id, file_path_hash);

DROP INDEX IF EXISTS idx_marketplace_share_info_for_client;
CREATE INDEX idx_marketplace_share_info_for_client ON marketplace_share_info(client_id, file_path_hash);

COMMIT;
104 changes: 0 additions & 104 deletions sql/03-add-allocation-prices.sql

This file was deleted.

File renamed without changes.
3 changes: 0 additions & 3 deletions sql/04-add-on-cloud.sql

This file was deleted.

7 changes: 0 additions & 7 deletions sql/05-add-commit-meta-txns-table.sql

This file was deleted.

7 changes: 0 additions & 7 deletions sql/06-add-cleaned_up-column-to-allocations.sql

This file was deleted.

30 changes: 0 additions & 30 deletions sql/07-terms-belongs-to-allocation-id.sql

This file was deleted.

4 changes: 0 additions & 4 deletions sql/08-add-payer-id-to-allocations.sql

This file was deleted.

11 changes: 0 additions & 11 deletions sql/10-add-time_unit-column-to-allocations.sql

This file was deleted.

11 changes: 0 additions & 11 deletions sql/11-add-payer_id-and-auth_tiket-columns-to-read_markers.sql

This file was deleted.

12 changes: 0 additions & 12 deletions sql/12-add-attributes-column-to-reference_objects.sql

This file was deleted.

Loading