Skip to content

Commit 222832d

Browse files
nicola-cabfinnschiermerjedelbo
authored
RCORE-2057 New builder for assessing that compression is working correctly (#7667)
* update next-major * specified part of new layout (new width encoding) * new header format for compressed arrays * code review * code review * start of classifying arrays for compression * classification down to column types * first attempt to cut through the BPlusTree madness * [wip] start on 'type driven' write process * all tests passing (but no compression enabled) * enabled compression for signed integer leafs only * removed some dubious constructions in cluster tree * delete tmp array while classifying arrays * enabled compression of links and backlinks (excl collections) * also compress bplustree of integers/links (experimental) * pref for compressing dicts (not working) * wip * wip * finally: compressing collections (incl dicts) * compressing timestamps now * enabled compression on ObjectID, TypedLink and UUID * also compressing Mixed properties (not list/dicts of Mixed) * Array compression with collections in Mixed (#7412) --------- Co-authored-by: Finn Schiermer Andersen <[email protected]> * merge next-major + collection in mixed * enable dynamic choice of compression method * moved typed_write/typed_print for bptree into class * Merge pull request #7432 from realm/fsa/clean_typed_write moved typed_write/typed_print for bptree into class * cleanup unrelated code changes * fix compilation * cleanup * code review * code review * scaffolding for accessing unaligned memory inside compressed arrays * introducing parallel scan for scanning in one go multiple compressed arrays * Silence warning * tests + point fix for upper bound * fix ubsan * added clickbench data ingestor * Added 2 queries to clickbench * separated out a clickquery benchmark * separated out a clickquery benchmark * update to clickbench and query * fix warnings * add new builder with compression always enabled for verifying that compression works correctly (#7524) * attempt to fix windows builders * silence warning windows * silence warnings --------- Co-authored-by: Finn Schiermer Andersen <[email protected]> Co-authored-by: Jørgen Edelbo <[email protected]> Co-authored-by: Finn Schiermer Andersen <[email protected]>
1 parent a02798a commit 222832d

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,12 +261,13 @@ option(REALM_ENABLE_ALLOC_SET_ZERO "Zero all allocations." OFF)
261261
if(NOT EMSCRIPTEN)
262262
option(REALM_ENABLE_ENCRYPTION "Enable encryption." ON)
263263
endif()
264-
option(REALM_ENABLE_MEMDEBUG "Add additional memory checks" OFF)
265-
option(REALM_VALGRIND "Tell the test suite we are running with valgrind" OFF)
266-
option(REALM_SYNC_MULTIPLEXING "Enables/disables sync session multiplexing by default" ON)
264+
option(REALM_ENABLE_MEMDEBUG "Add additional memory checks." OFF)
265+
option(REALM_VALGRIND "Tell the test suite we are running with valgrind." OFF)
266+
option(REALM_SYNC_MULTIPLEXING "Enables/disables sync session multiplexing by default." ON)
267267
set(REALM_MAX_BPNODE_SIZE "1000" CACHE STRING "Max B+ tree node size.")
268268
option(REALM_ENABLE_GEOSPATIAL "Enable geospatial types and queries." ON)
269269
option(REALM_APP_SERVICES "Enable the default app services implementation." ON)
270+
option(REALM_COMPRESS "Compress all the arrays by default in flex format." OFF)
270271

271272
# Find dependencies
272273
set(THREADS_PREFER_PTHREAD_FLAG ON)

evergreen/config.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ functions:
139139
140140
set_cmake_var realm_vars REALM_BUILD_COMMANDLINE_TOOLS BOOL "${build_command_line_tools|On}"
141141
set_cmake_var realm_vars REALM_ENABLE_ENCRYPTION BOOL "${enable_realm_encryption|On}"
142+
if [[ -n "${compress|}" ]]; then
143+
set_cmake_var realm_vars REALM_COMPRESS PATH "${cmake_toolchain_file}"
144+
fi
145+
142146
143147
if [[ -n "${fetch_missing_dependencies|}" ]]; then
144148
set_cmake_var realm_vars REALM_FETCH_MISSING_DEPENDENCIES BOOL On
@@ -1704,6 +1708,23 @@ buildvariants:
17041708
- name: compile_test_coverage
17051709
- name: finalize_coverage_data
17061710

1711+
- name: macos-array-compression
1712+
display_name: "MacOS 11 arm64 (Compress Arrays)"
1713+
run_on: macos-1100-arm64
1714+
expansions:
1715+
cmake_url: "https://s3.amazonaws.com/static.realm.io/evergreen-assets/cmake-3.26.3-macos-universal.tar.gz"
1716+
cmake_bindir: "./cmake_binaries/CMake.app/Contents/bin"
1717+
cmake_toolchain_file: "./tools/cmake/xcode.toolchain.cmake"
1718+
cmake_generator: Xcode
1719+
max_jobs: $(sysctl -n hw.logicalcpu)
1720+
xcode_developer_dir: /Applications/Xcode13.1.app/Contents/Developer
1721+
extra_flags: -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_OSX_ARCHITECTURES=arm64
1722+
compress: On
1723+
cmake_build_type: Debug
1724+
coveralls_flag_name: "macos-arm64"
1725+
tasks:
1726+
- name: compile_test
1727+
17071728
- name: windows-64-vs2019
17081729
display_name: "Windows x86_64 (VS 2019)"
17091730
run_on: windows-vsCurrent-large

src/realm/util/config.h.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@
2121
#cmakedefine01 REALM_VALGRIND
2222
#cmakedefine01 REALM_ASAN
2323
#cmakedefine01 REALM_TSAN
24+
#cmakedefine01 REALM_COMPRESS

0 commit comments

Comments
 (0)