-
Notifications
You must be signed in to change notification settings - Fork 44
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
when full backuping microstream file, it fails and report "Java technical array capacity limit of max signed 32 bit integer value exceeded: 2340984838" #611
Comments
The error is caused by a storage file larger that is larger than 2GB (Integer.MAX_VALUE bytes). The file’s size may be exceeded because the internal housekeeping had not enough time to split that large file after a larger store operation before the backup was triggered. However, the storage should handle that case by itself without failing. Many thanks for your error report. |
it seems that issueFullGarbageCollection method does not take effect. my code is like this.
|
When I changed my open microstream code like this. it still does not take effect . the transactions_0.sft still is about 2.2G root@hdmap-testing-team:/coredata/metalist/meta/channel_0]ls -al
|
could we fix this bug asap? I depend on microstream heavily |
If the storage has been shut down without incomplete writes, you can delete the transaction log file (transactions_0.sft). The storage will startup without that, it just can’t do “rollbacks” of incomplete writes. I’ll see what we can do to fix that problem soon. |
Environment Details
Describe the bug
I used microstream 8.0.1 and use LazyArrayList as my dataRoot memeber.
When I call the backup api ,it failed.
the max size of my lazyArrayList is about 160,000, new element is added to it ,and the old one is deleted from it dynamically. but the realtime max size does not exceed 200, 000
my data root like this:
Include stack traces or command outputs
microstream data
[root@x meta]# ls -al
total 36
drwxr-xr-x. 3 root root 4096 Jun 15 19:33 .
drwxr-xr-x. 9 root root 4096 Jul 11 10:13 ..
drwxr-xr-x. 2 root root 4096 Jul 11 10:52 channel_0
-rw-r--r--. 1 root root 23069 Jun 29 14:24 PersistenceTypeDictionary.ptd
[root@x]# cd channel_0/
[root@x channel_0]# ls -al
total 2418900
drwxr-xr-x. 2 root root 4096 Jul 11 10:52 .
drwxr-xr-x. 3 root root 4096 Jun 15 19:33 ..
-rw-r--r--. 1 root root 135397049 Jul 11 13:15 channel_0_1869.dat
-rw-r--r--. 1 root root 2341540368 Jul 11 13:15 transactions_0.sft
[root@x channel_0]# du -sh
2.4G .
[root@x channel_0]# ls -sh
total 2.4G
130M channel_0_1869.dat 2.2G transactions_0.sft
my microstream data is opened like this:
public EmbeddedStorageManager openByPath(String graphDbPath, boolean enableGC)
{
StorageEntityCache.Default.setGarbageCollectionEnabled(enableGC);
}
To Reproduce
insert may element to dataRoot lazyArrayList, the call backup like this
Expected behavior
the microstream file is backup
Screenshots
Additional context
The text was updated successfully, but these errors were encountered: