Initial commit
This commit is contained in:
42
.gitmodules
vendored
Normal file
42
.gitmodules
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
[submodule "ironsea_index"]
|
||||
path = ironsea_index
|
||||
url = ../ironsea_index
|
||||
[submodule "ironsea_index_hashmap"]
|
||||
path = ironsea_index_hashmap
|
||||
url = ../ironsea_index_hashmap
|
||||
[submodule "ironsea_index_sfc_dbc"]
|
||||
path = ironsea_index_sfc_dbc
|
||||
url = ../ironsea_index_sfc_dbc
|
||||
[submodule "ironsea_store"]
|
||||
path = ironsea_store
|
||||
url = ../ironsea_store
|
||||
[submodule "ironsea_store_buffered_file"]
|
||||
path = ironsea_store_buffered_file
|
||||
url = ../ironsea_store_buffered_file
|
||||
[submodule "ironsea_store_mapped_file"]
|
||||
path = ironsea_store_mapped_file
|
||||
url = ../ironsea_store_mapped_file
|
||||
[submodule "ironsea_store_file"]
|
||||
path = ironsea_store_file
|
||||
url = ../ironsea_store_file
|
||||
[submodule "ironsea_table"]
|
||||
path = ironsea_table
|
||||
url = ../ironsea_table
|
||||
[submodule "ironsea_table_vector"]
|
||||
path = ironsea_table_vector
|
||||
url = ../ironsea_table_vector
|
||||
[submodule "mercator_data_generator"]
|
||||
path = mercator_data_generator
|
||||
url = ../mercator_data_generator
|
||||
[submodule "mercator_db"]
|
||||
path = mercator_db
|
||||
url = ../mercator_db
|
||||
[submodule "mercator_service"]
|
||||
path = mercator_service
|
||||
url = ../mercator_service
|
||||
[submodule "mercator_parser"]
|
||||
path = mercator_parser
|
||||
url = ../mercator_parser
|
||||
[submodule "mercator_indexer"]
|
||||
path = mercator_indexer
|
||||
url = ../mercator_indexer
|
||||
2299
Cargo.lock
generated
Normal file
2299
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
38
Cargo.toml
Normal file
38
Cargo.toml
Normal file
@@ -0,0 +1,38 @@
|
||||
[workspace]
|
||||
|
||||
members = [
|
||||
# Binaries
|
||||
"mercator_service",
|
||||
|
||||
# Specific to mercator
|
||||
"mercator_parser",
|
||||
"mercator_db",
|
||||
|
||||
# Generic Interfaces
|
||||
"ironsea_index",
|
||||
"ironsea_store",
|
||||
"ironsea_table",
|
||||
|
||||
# Specific implementations
|
||||
"ironsea_index_hashmap",
|
||||
"ironsea_index_sfc_dbc",
|
||||
"ironsea_store_buffered_file",
|
||||
"ironsea_store_file",
|
||||
"ironsea_store_mapped_file",
|
||||
"ironsea_table_vector",
|
||||
]
|
||||
|
||||
[patch.crates-io]
|
||||
mercator_db = { path = "mercator_db" }
|
||||
mercator_parser = { path = "mercator_parser" }
|
||||
|
||||
ironsea_index = { path = "ironsea_index" }
|
||||
ironsea_store = { path = "ironsea_store" }
|
||||
ironsea_table = { path = "ironsea_table" }
|
||||
|
||||
ironsea_index_hashmap = { path = "ironsea_index_hashmap" }
|
||||
ironsea_index_sfc_dbc = { path = "ironsea_index_sfc_dbc" }
|
||||
ironsea_store_buffered_file = { path = "ironsea_store_buffered_file" }
|
||||
ironsea_store_file = { path = "ironsea_store_file" }
|
||||
ironsea_store_mapped_file = { path = "ironsea_store_mapped_file" }
|
||||
ironsea_table_vector = { path = "ironsea_table_vector" }
|
||||
82
README.md
Normal file
82
README.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Mercator Workspace
|
||||
|
||||
This repository references everything needed to build various tools related to the Spatial Index.
|
||||
|
||||
## Mercator: Spatial Index
|
||||
|
||||
**Mercator** is a spatial *volumetric* index for the [Human Brain Project](http://www.humanbrainproject.eu). It is a component of the [Knowledge Graph](http://www.humanbrainproject.eu/en/explore-the-brain/search/) service, which provides the spatial anchoring for the metadata registered as well as processes the volumetric queries.
|
||||
|
||||
It is build on top of the Iron Sea database toolkit.
|
||||
|
||||
## Iron Sea: Database Toolkit
|
||||
|
||||
**Iron Sea** provides a set of database engine bricks, which can be combined and applied on arbitrary data structures.
|
||||
|
||||
Unlike a traditional database, it does not assume a specific physical structure for the tables nor the records, but relies on the developper to provide a set of extractor functions which are used by the specific indices provided.
|
||||
|
||||
This enables the index implementations to be agnostic from the underlying data structure, and re-used.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Software
|
||||
|
||||
* Rust: https://www.rust-lang.org
|
||||
|
||||
## Quick start
|
||||
|
||||
* Clone the workspace, which will take care of bringing all the repositories needed.
|
||||
|
||||
```sh
|
||||
git clone --recurse git@gitlab.epfl.ch:DIAS/PROJECTS/HBP-SP5/mercator.git
|
||||
```
|
||||
|
||||
The following steps assume the working directory is the root of the mercator repository.
|
||||
|
||||
* **[Optional]** Create 3 datasets, of 1, 10 and 100 features respectively, each with 1000 positions:
|
||||
|
||||
```sh
|
||||
cd mercator_data_generator
|
||||
cargo run --release -- 1 10 100
|
||||
```
|
||||
|
||||
* Index the data:
|
||||
|
||||
```sh
|
||||
cd mercator_indexer
|
||||
for f in ../mercator_data_generator/1*.json
|
||||
do
|
||||
ln -s $f
|
||||
done
|
||||
cargo run --release -- 1k 10k 100k
|
||||
```
|
||||
|
||||
* Run the Spatial Index, while providing one of the datasets. Currently only one dataset (core) can be loaded at a time.
|
||||
|
||||
```sh
|
||||
cd mercator_service
|
||||
for f in ../mercator_indexer/*.index
|
||||
do
|
||||
ln -s $f
|
||||
done
|
||||
RUST_LOG="warn,actix_web=info,mercator_service=trace" \
|
||||
MERCATOR_IMPORT_DATA="100k" \
|
||||
MERCATOR_ALLOWED_ORIGINS="http://localhost:3200" \
|
||||
cargo run --release
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
For more information, please refer to the [documentation](https://epfl-dias.github.io/PROJECT_NAME/).
|
||||
|
||||
If you want to build the documentation and access it locally, you can use:
|
||||
|
||||
```sh
|
||||
cargo doc --open
|
||||
```
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
This open source software code was developed in part or in whole in the
|
||||
Human Brain Project, funded from the European Union’s Horizon 2020
|
||||
Framework Programme for Research and Innovation under the Specific Grant
|
||||
Agreement No. 785907 (Human Brain Project SGA2).
|
||||
1
ironsea_index
Submodule
1
ironsea_index
Submodule
Submodule ironsea_index added at 63b2e539d6
1
ironsea_index_hashmap
Submodule
1
ironsea_index_hashmap
Submodule
Submodule ironsea_index_hashmap added at 50d60f58b6
1
ironsea_index_sfc_dbc
Submodule
1
ironsea_index_sfc_dbc
Submodule
Submodule ironsea_index_sfc_dbc added at 49f4462b36
1
ironsea_store
Submodule
1
ironsea_store
Submodule
Submodule ironsea_store added at ed5e9611eb
1
ironsea_store_buffered_file
Submodule
1
ironsea_store_buffered_file
Submodule
Submodule ironsea_store_buffered_file added at 6809658c33
1
ironsea_store_file
Submodule
1
ironsea_store_file
Submodule
Submodule ironsea_store_file added at 189cc11256
1
ironsea_store_mapped_file
Submodule
1
ironsea_store_mapped_file
Submodule
Submodule ironsea_store_mapped_file added at 90abe7ab7c
1
ironsea_table
Submodule
1
ironsea_table
Submodule
Submodule ironsea_table added at 277f050873
1
ironsea_table_vector
Submodule
1
ironsea_table_vector
Submodule
Submodule ironsea_table_vector added at ba883b8469
1
mercator_data_generator
Submodule
1
mercator_data_generator
Submodule
Submodule mercator_data_generator added at 1da4f8b28b
1
mercator_db
Submodule
1
mercator_db
Submodule
Submodule mercator_db added at fb3ead444b
1
mercator_indexer
Submodule
1
mercator_indexer
Submodule
Submodule mercator_indexer added at 1912a5f092
1
mercator_parser
Submodule
1
mercator_parser
Submodule
Submodule mercator_parser added at 7b8193e7bd
1
mercator_service
Submodule
1
mercator_service
Submodule
Submodule mercator_service added at f1c8677e5b
Reference in New Issue
Block a user