Skip to content

Commit

Permalink
update columnar bench (#2438)
Browse files Browse the repository at this point in the history
* update columnar bench

* fix compile
  • Loading branch information
PSeitz authored Jun 14, 2024
1 parent 322f47e commit 511b027
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 55 deletions.
16 changes: 12 additions & 4 deletions columnar/benches/bench_access.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::fmt::{Display, Formatter};
use binggan::{black_box, InputGroup};
use tantivy_columnar::*;

enum Card {
pub enum Card {
MultiSparse,
Multi,
Sparse,
Expand All @@ -25,7 +25,7 @@ impl Display for Card {

const NUM_DOCS: u32 = 2_000_000;

fn generate_columnar(card: Card, num_docs: u32) -> Column {
pub fn generate_columnar(card: Card, num_docs: u32) -> ColumnarReader {
use tantivy_columnar::ColumnarWriter;

let mut columnar_writer = ColumnarWriter::default();
Expand Down Expand Up @@ -62,18 +62,26 @@ fn generate_columnar(card: Card, num_docs: u32) -> Column {

let mut wrt: Vec<u8> = Vec::new();
columnar_writer.serialize(num_docs, &mut wrt).unwrap();

let reader = ColumnarReader::open(wrt).unwrap();
reader
}

pub fn generate_columnar_and_open(card: Card, num_docs: u32) -> Column {
let reader = generate_columnar(card, num_docs);
reader.read_columns("price").unwrap()[0]
.open_u64_lenient()
.unwrap()
.unwrap()
}

fn main() {
let mut inputs = Vec::new();

let mut add_card = |card1: Card| {
inputs.push((format!("{card1}"), generate_columnar(card1, NUM_DOCS)));
inputs.push((
format!("{card1}"),
generate_columnar_and_open(card1, NUM_DOCS),
));
};

add_card(Card::MultiSparse);
Expand Down
55 changes: 5 additions & 50 deletions columnar/benches/bench_merge.rs
Original file line number Diff line number Diff line change
@@ -1,59 +1,11 @@
use core::fmt;
use std::fmt::{Display, Formatter};
mod bench_access;

use bench_access::{generate_columnar, Card};
use binggan::{black_box, BenchRunner};
use tantivy_columnar::*;

enum Card {
Multi,
Sparse,
Dense,
}
impl Display for Card {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
match self {
Card::Multi => write!(f, "multi"),
Card::Sparse => write!(f, "sparse"),
Card::Dense => write!(f, "dense"),
}
}
}

const NUM_DOCS: u32 = 100_000;

fn generate_columnar(card: Card, num_docs: u32) -> ColumnarReader {
use tantivy_columnar::ColumnarWriter;

let mut columnar_writer = ColumnarWriter::default();

match card {
Card::Multi => {
columnar_writer.record_numerical(0, "price", 10u64);
columnar_writer.record_numerical(0, "price", 10u64);
}
_ => {}
}

for i in 0..num_docs {
match card {
Card::Multi | Card::Sparse => {
if i % 13 == 0 {
columnar_writer.record_numerical(i, "price", i as u64);
}
}
Card::Dense => {
if i % 12 == 0 {
columnar_writer.record_numerical(i, "price", i as u64);
}
}
}
}

let mut wrt: Vec<u8> = Vec::new();
columnar_writer.serialize(num_docs, &mut wrt).unwrap();

ColumnarReader::open(wrt).unwrap()
}
fn main() {
let mut inputs = Vec::new();

Expand All @@ -68,9 +20,12 @@ fn main() {
};

add_combo(Card::Multi, Card::Multi);
add_combo(Card::MultiSparse, Card::MultiSparse);
add_combo(Card::Dense, Card::Dense);
add_combo(Card::Sparse, Card::Sparse);
add_combo(Card::Sparse, Card::Dense);
add_combo(Card::MultiSparse, Card::Dense);
add_combo(Card::MultiSparse, Card::Sparse);
add_combo(Card::Multi, Card::Dense);
add_combo(Card::Multi, Card::Sparse);

Expand Down
2 changes: 1 addition & 1 deletion columnar/src/compat_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ fn generate_columnar(num_docs: u32) -> Vec<u8> {
}

let mut wrt: Vec<u8> = Vec::new();
columnar_writer.serialize(num_docs, None, &mut wrt).unwrap();
columnar_writer.serialize(num_docs, &mut wrt).unwrap();

wrt
}
Expand Down

0 comments on commit 511b027

Please sign in to comment.