Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Enhanced Orthogonal Persistence #4193
Enhanced Orthogonal Persistence #4193
Changes from 249 commits
5424d16
cd8131e
4d26bd1
5bb8424
589542e
be38c4e
eb0366d
40e1f35
3d708e2
b3ac218
31df132
f2d67c5
ed8f4f7
5bb6a39
963edbc
b9e0167
6c17834
7076c8a
dd001bd
66d0920
4fb4b04
1f26c67
bf25c9a
82d8ca1
e788076
ce36cf8
b75497c
a444c17
cca62ec
87bb037
f91d441
0eb9bc4
e797c79
5811ea3
e22be2b
23b54af
0eb283c
12af096
95ef9fc
de7600a
a3b9d76
394f873
7bdd8cd
9c2736b
b26ac99
12fda07
a80e610
5cc4588
0be9769
e9e91ce
87abf2f
c588239
b10aedd
3fae535
2c31217
b119d80
568b3cc
e9f91cf
9e0c490
fdf601c
f5ca132
0e7dcb7
0e73ccf
051da06
0a8baf0
e984eeb
ad587dc
63e28a8
69cf3d8
64bad1a
c4c98d7
cf9a37d
43bde5d
67ebe00
cce91a8
a9756db
cd85353
89528b5
4d79801
338ff5e
76f2bde
dde1d7e
0329c71
bcb7f73
df90d47
539e4b3
29bc1fd
8026ee9
ad1264b
d27d9ee
149206d
3dfa7ec
bd46954
c19aabd
867e3ad
4c90132
c6071a0
a0bae88
7d3d017
ccb43ac
8f42dc0
def8030
cad375a
bc7a51f
9d6cd0f
f36196a
51d5242
911e3d7
3981a91
0ca9ce3
e8986b3
c455a11
d6daf39
acce2ff
3e24296
a613365
193a684
eeceffc
e8fe7d8
1e2e35d
55216e2
bf3e05b
be54eca
1e83095
ef2e8a5
d8f7f04
5c6cb9d
ef69565
1aa3cd2
3e43218
6b188e6
affc532
fa85e2b
743b9af
87dfbb7
c500dd2
07c42db
c24994a
94e5257
0067284
c3f1b56
7c8987b
ea702bf
f6abef5
df3c8a3
0e0227e
bdaa979
524f996
f81edb7
7739fd6
e98774b
b34d4ce
f924ec8
0101f0d
d3c4ef4
a4ff2e2
38878fd
03f1e89
af1e6c9
787b574
3d52046
2c6875c
24cfff4
7912b94
0231575
7d71daf
66abe49
695b3ef
932f650
0af485e
87c1a52
9ff46f5
0efcfd5
beb54ab
2ed5e03
cbc4908
6d7fe43
24e6f03
2b53fe0
db2536e
f0d78ec
d9c23e8
6be52e1
7b03506
cc85f80
8430baa
bdf39b0
4e1246b
99b2985
0b0976a
00e5895
6bbfdea
4981b3a
788f403
30c91ee
28d98e0
4310118
448962f
2cb651a
3de6cac
b44b133
8dbe885
ac88615
6f581c6
9f86d91
ba137c7
4d41889
0fdbc12
0ed4fe6
41f8917
1e8d0f6
e8c4c19
f5e97a9
afde9e1
34dd29d
0082f1d
a1f5db7
b7cdc7a
7331086
02b6b4b
8cffb0e
6ce9381
54266a0
1fd2b8f
d56083c
f0f432e
e7bf60c
5bd4bf2
0ff25ce
e83e95b
e00bafb
49e0bc4
cd9588f
b8471c8
0a8a13f
a210119
d3d9776
5ddd166
3b09b35
77d6b84
d0ac733
5fb7341
e0fa86c
6029604
c325710
2b5e349
b4e036d
f609bda
71384a3
ce4fec0
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@we need to be careful with making this a hard limit on the Rust stack size because, e.g. candid destabilization currently uses the Rust stack in recursive calls.
The other option might to modify deserialization to use its own shadow stack, allocated from a blob and avoiding the Rust stack alogether. I could look at that eventually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I believe the Candid deserialization (especially when migrating from classical persistence to enhanced orthogonal persistence) is the critical stack consumer. A custom temporary heap-allocated stack may be the ideal solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, I wonder if this is too limited. What happens if we add proper support for unicode to the rts? I think that might increase the data segments by up to 1MB (though hard to tell without doing the experiment).
If we get stuck, does that mean we can get unstuck by doing a graph copy upgrade?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is hard to tell what a good limit is. We would have two options:
I believe the first approach would the more elegant one, especially if it is a bulk data segment.