Skip to content

Commit a897a05

Browse files
authored
Basline hypertrie (#86)
* improved and fixed einsum operator graph from hypertrie/0.5.3 * several fixes to result serialization. a rapid SAX parser based on rapidJSON is used now * HTTP chunked (streaming) is activated again * fixed Dockerfile * improved build process
1 parent f24ea4b commit a897a05

File tree

128 files changed

+10080
-16427
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+10080
-16427
lines changed

.clang-format

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Generated from CLion C/C++ Code Style settings
2+
BasedOnStyle: LLVM
3+
Language: Cpp
4+
Standard: c++20
5+
AccessModifierOffset: -4
6+
AlignAfterOpenBracket: Align
7+
AlignConsecutiveAssignments: false
8+
AlignOperands: true
9+
AllowAllArgumentsOnNextLine: false
10+
AllowAllConstructorInitializersOnNextLine: false
11+
AllowAllParametersOfDeclarationOnNextLine: false
12+
AllowShortBlocksOnASingleLine: Always
13+
AllowShortCaseLabelsOnASingleLine: false
14+
AllowShortFunctionsOnASingleLine: All
15+
AllowShortIfStatementsOnASingleLine: Always
16+
AllowShortLambdasOnASingleLine: All
17+
AllowShortLoopsOnASingleLine: true
18+
AlwaysBreakAfterReturnType: None
19+
AlwaysBreakTemplateDeclarations: Yes
20+
BreakBeforeBraces: Custom
21+
BraceWrapping:
22+
AfterCaseLabel: false
23+
AfterClass: false
24+
AfterControlStatement: Never
25+
AfterEnum: false
26+
AfterFunction: false
27+
AfterNamespace: false
28+
AfterUnion: false
29+
BeforeCatch: false
30+
BeforeElse: false
31+
IndentBraces: false
32+
SplitEmptyFunction: false
33+
SplitEmptyRecord: true
34+
BreakBeforeBinaryOperators: None
35+
BreakBeforeTernaryOperators: true
36+
BreakConstructorInitializers: BeforeColon
37+
BreakInheritanceList: BeforeColon
38+
ColumnLimit: 0
39+
CompactNamespaces: false
40+
ContinuationIndentWidth: 8
41+
IndentCaseLabels: true
42+
IndentPPDirectives: None
43+
IndentWidth: 4
44+
KeepEmptyLinesAtTheStartOfBlocks: true
45+
MaxEmptyLinesToKeep: 2
46+
NamespaceIndentation: All
47+
ObjCSpaceAfterProperty: false
48+
ObjCSpaceBeforeProtocolList: true
49+
PointerAlignment: Right
50+
ReflowComments: false
51+
SpaceAfterCStyleCast: true
52+
SpaceAfterLogicalNot: false
53+
SpaceAfterTemplateKeyword: false
54+
SpaceBeforeAssignmentOperators: true
55+
SpaceBeforeCpp11BracedList: false
56+
SpaceBeforeCtorInitializerColon: true
57+
SpaceBeforeInheritanceColon: true
58+
SpaceBeforeParens: ControlStatements
59+
SpaceBeforeRangeBasedForLoopColon: true
60+
SpaceInEmptyParentheses: false
61+
SpacesBeforeTrailingComments: 0
62+
SpacesInAngles: false
63+
SpacesInCStyleCastParentheses: false
64+
SpacesInContainerLiterals: false
65+
SpacesInParentheses: false
66+
SpacesInSquareBrackets: false
67+
TabWidth: 4
68+
UseTab: ForContinuationAndIndentation

.dockerignore

Lines changed: 164 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,166 @@
1+
## project specific
2+
/src/lib/tentris/tentris_version.hpp
13
# log files
24
tentris_*
3-
# cmake build folders
4-
./cmake*
5+
6+
# Created by https://www.toptal.com/developers/gitignore/api/c++,conan,jetbrains+all,cmake
7+
# Edit at https://www.toptal.com/developers/gitignore?templates=c++,conan,jetbrains+all,cmake
8+
9+
### C++ ###
10+
# Prerequisites
11+
*.d
12+
13+
# Compiled Object files
14+
*.slo
15+
*.lo
16+
*.o
17+
*.obj
18+
19+
# Precompiled Headers
20+
*.gch
21+
*.pch
22+
23+
# Linker files
24+
*.ilk
25+
26+
# Debugger Files
27+
*.pdb
28+
29+
# Compiled Dynamic libraries
30+
*.so
31+
*.dylib
32+
*.dll
33+
34+
# Fortran module files
35+
*.mod
36+
*.smod
37+
38+
# Compiled Static libraries
39+
*.lai
40+
*.la
41+
*.a
42+
*.lib
43+
44+
# Executables
45+
*.exe
46+
*.out
47+
*.app
48+
49+
### CMake ###
50+
CMakeLists.txt.user
51+
CMakeCache.txt
52+
CMakeFiles
53+
CMakeScripts
54+
Testing
55+
Makefile
56+
cmake_install.cmake
57+
install_manifest.txt
58+
compile_commands.json
59+
CTestTestfile.cmake
60+
_deps
61+
CMakeUserPresets.json
62+
63+
### CMake Patch ###
64+
# External projects
65+
*-prefix/
66+
67+
### Conan ###
68+
# Conan build information
69+
conan.lock
70+
conanbuildinfo.*
71+
conaninfo.txt
72+
graph_info.json
73+
74+
### JetBrains+all ###
75+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
76+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
77+
78+
# User-specific stuff
79+
.idea/**/workspace.xml
80+
.idea/**/tasks.xml
81+
.idea/**/usage.statistics.xml
82+
.idea/**/dictionaries
83+
.idea/**/shelf
84+
85+
# Generated files
86+
.idea/**/contentModel.xml
87+
88+
# Sensitive or high-churn files
89+
.idea/**/dataSources/
90+
.idea/**/dataSources.ids
91+
.idea/**/dataSources.local.xml
92+
.idea/**/sqlDataSources.xml
93+
.idea/**/dynamic.xml
94+
.idea/**/uiDesigner.xml
95+
.idea/**/dbnavigator.xml
96+
97+
# Gradle
98+
.idea/**/gradle.xml
99+
.idea/**/libraries
100+
101+
# Gradle and Maven with auto-import
102+
# When using Gradle or Maven with auto-import, you should exclude module files,
103+
# since they will be recreated, and may cause churn. Uncomment if using
104+
# auto-import.
105+
# .idea/artifacts
106+
# .idea/compiler.xml
107+
# .idea/jarRepositories.xml
108+
# .idea/modules.xml
109+
# .idea/*.iml
110+
# .idea/modules
111+
# *.iml
112+
# *.ipr
113+
114+
# CMake
115+
cmake-build-*/
116+
117+
# Mongo Explorer plugin
118+
.idea/**/mongoSettings.xml
119+
120+
# File-based project format
121+
*.iws
122+
123+
# IntelliJ
124+
out/
125+
126+
# mpeltonen/sbt-idea plugin
127+
.idea_modules/
128+
129+
# JIRA plugin
130+
atlassian-ide-plugin.xml
131+
132+
# Cursive Clojure plugin
133+
.idea/replstate.xml
134+
135+
# Crashlytics plugin (for Android Studio and IntelliJ)
136+
com_crashlytics_export_strings.xml
137+
crashlytics.properties
138+
crashlytics-build.properties
139+
fabric.properties
140+
141+
# Editor-based Rest Client
142+
.idea/httpRequests
143+
144+
# Android studio 3.1+ serialized cache file
145+
.idea/caches/build_file_checksums.ser
146+
147+
### JetBrains+all Patch ###
148+
# Ignores the whole .idea folder and all .iml files
149+
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
150+
151+
.idea/
152+
153+
# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
154+
155+
*.iml
156+
modules.xml
157+
.idea/misc.xml
158+
*.ipr
159+
160+
# Sonarlint plugin
161+
.idea/sonarlint
162+
163+
# End of https://www.toptal.com/developers/gitignore/api/c++,conan,jetbrains+all,cmake
164+
165+
# docu folder
166+
/docu/

.github/workflows/push.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: push
2+
3+
on:
4+
push:
5+
branches:
6+
- '*'
7+
8+
jobs:
9+
main:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Set up Docker Buildx
13+
uses: docker/setup-buildx-action@v1
14+
- name: Cache Docker layers
15+
uses: actions/cache@v2
16+
with:
17+
path: /tmp/.buildx-cache
18+
key: ${{ runner.os }}-buildx-${{ github.sha }}
19+
restore-keys: |
20+
${{ runner.os }}-buildx-
21+
- name: Build image
22+
uses: docker/build-push-action@v2
23+
with:
24+
push: false
25+
tags: |
26+
tentris:latest
27+
cache-from: type=local,src=/tmp/.buildx-cache
28+
cache-to: type=local,dest=/tmp/.buildx-cache
29+

.github/workflows/release.yaml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: release
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
8+
jobs:
9+
main:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v1
14+
- name: Get the Ref
15+
id: get-ref
16+
uses: ankitvgupta/ref-to-tag-action@master
17+
with:
18+
ref: ${{ github.ref }}
19+
head_ref: ${{ github.head_ref }}
20+
- name: Set up Docker Buildx
21+
uses: docker/setup-buildx-action@v1
22+
- name: Cache Docker layers
23+
uses: actions/cache@v2
24+
with:
25+
path: /tmp/.buildx-cache
26+
key: ${{ runner.os }}-buildx-${{ github.sha }}
27+
restore-keys: |
28+
${{ runner.os }}-buildx-
29+
- name: Login to Docker registry
30+
uses: docker/login-action@v1
31+
with:
32+
username: ${{ secrets.DOCKER_REGISTRY_USER }}
33+
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
34+
- name: Build and load image
35+
id: docker_build
36+
uses: docker/build-push-action@v2
37+
with:
38+
load: true # We can't load and push at the same time...
39+
tags: |
40+
dicegroup/tentris_server:current_build
41+
dicegroup/tentris_server:${{ steps.get-ref.outputs.tag }}
42+
cache-from: type=local,src=/tmp/.buildx-cache
43+
cache-to: type=local,dest=/tmp/.buildx-cache
44+
- name: Push image
45+
run: |
46+
docker push dicegroup/tentris_server:${{ steps.get-ref.outputs.tag }}
47+
- name: Extract binaries
48+
run: |
49+
container_id=$(docker create dicegroup/tentris_server:current_build)
50+
docker cp ${container_id}:/tentris_server ./tentris_server
51+
docker cp ${container_id}:/tentris_terminal ./tentris_terminal
52+
docker cp ${container_id}:/rdf2ids ./rdf2ids
53+
docker cp ${container_id}:/ids2hypertrie ./ids2hypertrie
54+
zip benchmarktools_clang11_libstdcxx10.zip rdf2ids ids2hypertrie
55+
zip tentris_clang11_libstdcxx10.zip tentris_server tentris_terminal
56+
- name: Create Release
57+
id: create_release
58+
uses: actions/create-release@v1
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61+
with:
62+
tag_name: ${{ steps.get-ref.outputs.tag }}
63+
release_name: ${{ steps.get-ref.outputs.tag }}
64+
draft: true
65+
prerelease: false
66+
- name: Upload tentris
67+
id: upload-tentris-asset
68+
uses: actions/upload-release-asset@v1
69+
env:
70+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71+
with:
72+
upload_url: ${{ steps.create_release.outputs.upload_url }}
73+
asset_path: tentris_clang11_libstdcxx10.zip
74+
asset_name: tentris_${{ steps.get-ref.outputs.tag }}_clang11_libstdcxx10.zip
75+
asset_content_type: application/zip
76+
- name: Upload benchmarktools
77+
id: upload-benchmarktools-asset
78+
uses: actions/upload-release-asset@v1
79+
env:
80+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
81+
with:
82+
upload_url: ${{ steps.create_release.outputs.upload_url }}
83+
asset_path: benchmarktools_clang11_libstdcxx10.zip
84+
asset_name: benchmarktools_${{ steps.get-ref.outputs.tag }}_clang11_libstdcxx10.zip
85+
asset_content_type: application/zip

0 commit comments

Comments
 (0)