mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-05 08:10:50 +00:00
This commit changes the underlying storage for `Bitmap` from a red-black tree to a roaring bitmap. It also removes bitmaps from the cache and only stores the bitmap count.
87 lines
1.6 KiB
Protocol Buffer
87 lines
1.6 KiB
Protocol Buffer
package internal;
|
|
|
|
message Bitmap {
|
|
repeated uint64 Bits = 1;
|
|
repeated Attr Attrs = 2;
|
|
}
|
|
|
|
message Pair {
|
|
required uint64 Key = 1;
|
|
required uint64 Count = 2;
|
|
}
|
|
|
|
message Bit {
|
|
required uint64 BitmapID = 1;
|
|
required uint64 ProfileID = 2;
|
|
}
|
|
|
|
message Profile {
|
|
required uint64 ID = 1;
|
|
repeated Attr Attrs = 2;
|
|
}
|
|
|
|
message Attr {
|
|
required string Key = 1;
|
|
optional string StringValue = 2;
|
|
optional uint64 UintValue = 3;
|
|
optional bool BoolValue = 4;
|
|
}
|
|
|
|
message AttrMap {
|
|
repeated Attr Attrs = 1;
|
|
}
|
|
|
|
message QueryRequest {
|
|
required string DB = 1;
|
|
required string Query = 2;
|
|
repeated uint64 Slices = 3;
|
|
optional bool Profiles = 4;
|
|
optional int64 Timestamp = 5;
|
|
optional uint32 Quantum = 6;
|
|
optional bool Remote = 7;
|
|
}
|
|
|
|
message QueryResponse {
|
|
optional string Err = 1;
|
|
repeated QueryResult Results = 2;
|
|
repeated Profile Profiles = 3;
|
|
}
|
|
|
|
message QueryResult {
|
|
optional Bitmap Bitmap = 1;
|
|
optional uint64 N = 2;
|
|
repeated Pair Pairs = 3;
|
|
optional bool Changed = 4;
|
|
}
|
|
|
|
message ImportRequest {
|
|
required string DB = 1;
|
|
required string Frame = 2;
|
|
required uint64 Slice = 3;
|
|
repeated uint64 BitmapIDs = 4;
|
|
repeated uint64 ProfileIDs = 5;
|
|
}
|
|
|
|
message ImportResponse {
|
|
optional string Err = 1;
|
|
}
|
|
|
|
message BlockDataRequest {
|
|
required string DB = 1;
|
|
required string Frame = 2;
|
|
required uint64 Slice = 3;
|
|
required uint64 Block = 4;
|
|
}
|
|
|
|
message BlockDataResponse {
|
|
repeated uint64 BitmapIDs = 1;
|
|
repeated uint64 ProfileIDs = 2;
|
|
}
|
|
|
|
message Cache {
|
|
repeated uint64 BitmapIDs = 1;
|
|
}
|
|
|
|
message SliceMaxResponse {
|
|
required uint64 SliceMax = 1;
|
|
}
|