Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Next major #7826

Draft
wants to merge 38 commits into
base: master
Choose a base branch
from
Draft

Merge Next major #7826

wants to merge 38 commits into from

Conversation

jedelbo
Copy link
Contributor

@jedelbo jedelbo commented Jun 20, 2024

What, How & Why?

☑️ ToDos

  • 📝 Changelog update
  • 🚦 Tests (or not relevant)
  • C-API, if public C++ API changed
  • bindgen/spec.yml, if public C++ API changed

jedelbo and others added 24 commits March 27, 2024 11:14
* code review

---------

Co-authored-by: Finn Schiermer Andersen <[email protected]>
Co-authored-by: Jørgen Edelbo <[email protected]>
* 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

* swap byte 3&4 with byte 6&7 for flex formats for storing A and B sizes

* Some modifications

* Move Encoding definition

* Testing

* Perserve type information in typed_write (#7598)

* call directly Array::destroy()

* Fix issue

* remove table from typed_print

* lint

* point fix avoid compressing history array

---------

Co-authored-by: Finn Schiermer Andersen <[email protected]>
Co-authored-by: Jørgen Edelbo <[email protected]>
Co-authored-by: Finn Schiermer Andersen <[email protected]>
…es for compressed arrays (#7571)

* 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

* remove dead code in subword search

* remove tests of 'unaligned iterator' for flexibility

* Some fixes to conform with coding polycies

* Enhance test

* bugfix for serch with width=31 bits

* bugfix for search with width=31 bits

* bugfix for search with width=31 bits

---------

Co-authored-by: Finn Schiermer Andersen <[email protected]>
Co-authored-by: Jørgen Edelbo <[email protected]>
Co-authored-by: Finn Schiermer Andersen <[email protected]>
…ompression (#7664)

* 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

* attempt to fix windows builders

* silence warnings

* fix importer

---------

Co-authored-by: Finn Schiermer Andersen <[email protected]>
Co-authored-by: Jørgen Edelbo <[email protected]>
Co-authored-by: Finn Schiermer Andersen <[email protected]>
…ectly (#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]>
* Add integer compressor for arrays that have type WTypBits

* Add packed handler 

* Add flex handler

* Embed integer compression logic inside commit machinery

* Tests

* Optimization for integer array decompression and Array::find for compressed formats 

* code review

---------

Co-authored-by: Finn Schiermer Andersen <[email protected]>
Co-authored-by: Jørgen Edelbo <[email protected]>
@cla-bot cla-bot bot added the cla: yes label Jun 20, 2024
Copy link

coveralls-official bot commented Jun 20, 2024

Pull Request Test Coverage Report for Build jorgen.edelbo_322

Details

  • 3131 of 3738 (83.76%) changed or added relevant lines in 54 files are covered.
  • 566 unchanged lines in 29 files lost coverage.
  • Overall coverage decreased (-6.1%) to 84.879%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/realm/array_mixed.cpp 48 49 97.96%
test/test_array.cpp 484 486 99.59%
src/realm/dictionary.cpp 18 21 85.71%
src/realm/group.hpp 0 3 0.0%
src/realm/node.hpp 2 5 40.0%
src/realm/query_conditions.hpp 64 67 95.52%
src/realm/spec.hpp 0 4 0.0%
src/realm/cluster.hpp 1 6 16.67%
src/realm/integer_flex_compressor.cpp 40 46 86.96%
src/realm/integer_compressor.hpp 60 68 88.24%
Files with Coverage Reduction New Missed Lines %
src/realm/array.hpp 1 95.81%
src/realm/array_mixed.cpp 1 92.5%
src/realm/array_unsigned.cpp 1 85.35%
test/test_index_string.cpp 1 93.48%
test/test_query2.cpp 1 98.73%
src/realm/array_with_find.hpp 2 98.56%
src/realm/node_header.hpp 2 63.35%
src/realm/query_expression.hpp 2 93.84%
src/realm/sync/noinst/client_history_impl.hpp 3 94.64%
src/realm/table.cpp 3 89.74%
Totals Coverage Status
Change from base Build 2432: -6.1%
Covered Lines: 84791
Relevant Lines: 99896

💛 - Coveralls

Copy link

coveralls-official bot commented Jul 1, 2024

Pull Request Test Coverage Report for Build jorgen.edelbo_333

Details

  • 3131 of 3738 (83.76%) changed or added relevant lines in 54 files are covered.
  • 80 unchanged lines in 14 files lost coverage.
  • Overall coverage decreased (-0.08%) to 90.865%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/realm/array_mixed.cpp 48 49 97.96%
test/test_array.cpp 484 486 99.59%
src/realm/dictionary.cpp 18 21 85.71%
src/realm/group.hpp 0 3 0.0%
src/realm/node.hpp 2 5 40.0%
src/realm/query_conditions.hpp 64 67 95.52%
src/realm/spec.hpp 0 4 0.0%
src/realm/cluster.hpp 1 6 16.67%
src/realm/integer_flex_compressor.cpp 40 46 86.96%
src/realm/integer_compressor.hpp 60 68 88.24%
Files with Coverage Reduction New Missed Lines %
src/realm/array.hpp 1 95.81%
src/realm/array_mixed.cpp 1 92.5%
src/realm/array_unsigned.cpp 1 85.35%
test/fuzz_tester.hpp 1 57.73%
src/realm/node_header.hpp 2 63.35%
test/test_lang_bind_helper.cpp 2 93.2%
src/realm/sync/noinst/client_impl_base.cpp 4 82.46%
src/realm/array_direct.hpp 5 89.67%
test/fuzz_group.cpp 5 48.01%
test/object-store/util/sync/baas_admin_api.cpp 5 84.93%
Totals Coverage Status
Change from base Build 2448: -0.08%
Covered Lines: 217498
Relevant Lines: 239364

💛 - Coveralls

Copy link

coveralls-official bot commented Jul 3, 2024

Pull Request Test Coverage Report for Build jorgen.edelbo_337

Details

  • 3131 of 3738 (83.76%) changed or added relevant lines in 54 files are covered.
  • 106 unchanged lines in 23 files lost coverage.
  • Overall coverage decreased (-0.1%) to 90.864%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/realm/array_mixed.cpp 48 49 97.96%
test/test_array.cpp 484 486 99.59%
src/realm/dictionary.cpp 18 21 85.71%
src/realm/group.hpp 0 3 0.0%
src/realm/node.hpp 2 5 40.0%
src/realm/query_conditions.hpp 64 67 95.52%
src/realm/spec.hpp 0 4 0.0%
src/realm/cluster.hpp 1 6 16.67%
src/realm/integer_flex_compressor.cpp 40 46 86.96%
src/realm/integer_compressor.hpp 60 68 88.24%
Files with Coverage Reduction New Missed Lines %
src/realm/array.hpp 1 95.81%
src/realm/array_unsigned.cpp 1 85.35%
src/realm/dictionary.cpp 1 85.17%
src/realm/sync/noinst/changeset_index.cpp 1 79.47%
src/realm/sync/noinst/server/server.cpp 1 73.56%
src/realm/util/serializer.cpp 1 90.43%
test/test_index_string.cpp 1 93.48%
src/realm/array_with_find.hpp 2 98.56%
src/realm/list.cpp 2 87.37%
src/realm/mixed.cpp 2 86.46%
Totals Coverage Status
Change from base Build 2467: -0.1%
Covered Lines: 217725
Relevant Lines: 239616

💛 - Coveralls

Copy link

coveralls-official bot commented Jul 12, 2024

Pull Request Test Coverage Report for Build jorgen.edelbo_391

Details

  • 3157 of 3519 (89.71%) changed or added relevant lines in 54 files are covered.
  • 191 unchanged lines in 22 files lost coverage.
  • Overall coverage decreased (-0.02%) to 91.091%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/realm/array_mixed.cpp 48 49 97.96%
src/realm/group.cpp 47 48 97.92%
src/realm/cluster_tree.cpp 40 42 95.24%
test/test_array.cpp 484 486 99.59%
src/realm/dictionary.cpp 18 21 85.71%
src/realm/query_conditions.hpp 64 67 95.52%
src/realm/bplustree.cpp 23 27 85.19%
src/realm/cluster.cpp 130 134 97.01%
src/realm/integer_flex_compressor.cpp 40 46 86.96%
src/realm/integer_compressor.hpp 60 68 88.24%
Files with Coverage Reduction New Missed Lines %
src/realm/array.hpp 1 95.81%
src/realm/array_string.cpp 1 88.03%
src/realm/array_unsigned.cpp 1 85.35%
src/realm/dictionary.cpp 1 85.17%
src/realm/sync/network/websocket.cpp 1 72.2%
src/realm/sync/noinst/changeset_index.cpp 1 79.47%
src/realm/group.cpp 2 89.6%
src/realm/node_header.hpp 2 63.35%
src/realm/sync/noinst/client_impl_base.cpp 2 82.78%
src/realm/sync/noinst/protocol_codec.hpp 3 75.74%
Totals Coverage Status
Change from base Build 2561: -0.02%
Covered Lines: 219971
Relevant Lines: 241486

💛 - Coveralls

Create test file in file-format 24
This will allow some initial experiments in the SDKs. This is not a
fileformat breaking change as we just use already existing features.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants