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
Extend maximum database page size to 32KB [CORE2192] #998
Comments
Commented by: @hvlad Note, big page size may be good for table scan's but is very bad for writes and random access. |
Commented by: Sean Leyne (seanleyne) Vlad, The prefetch and page clustering are certainly good things, but if the OS and hardware are reading/writing large blocks, it makes sense for the database page to take advantage of this. Further, when Firebird supports a record size > 64KB, then a large page size would reduce the number of page reads which would be required for each row. |
Modified by: @dyemanovassignee: Dmitry Yemanov [ dimitr ] |
Commented by: @dyemanov 32KB page size is implemented, but disabled yet. Sean, do you volunteer to test? |
Commented by: Sean Leyne (seanleyne) Sure, but what type/level of testing would be appropriate? |
Commented by: @dyemanov I've adjusted the ticket title to limit request with 32KB page size. Bigger values are harder to implement and we need to evaluate 32KB pages properly before making any decision about bigger page sizes. |
Modified by: @dyemanovsummary: Support database page sizes greater than 16KB => Extend maximum database page size to 32KB |
Modified by: @dyemanovstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 4.0 Alpha 1 [ 10731 ] |
Commented by: @pavel-zotov What about ability to create index with max key_size = page_size /4 - 9 ? But currently one can not to operate with key length >= 4092 byte: SQL> create database 'localhost/3400:c:\temp\test32k.fdb' page_size 32768; MON$PAGE_SIZE 32768 SQL> commit; ===== SQL> show version; on disk structure version 12.0 |
Commented by: @dyemanov Pavel: fixed now, thanks. |
Commented by: @pavel-zotov Some kind of bug is still with us... While "1" and "2" work fine, way "3" fails:SQL> create database 'localhost/3400:/var/db/fb40/tmp40.fdb' page_size 32768; SQL> recreate table test3(s dm_2045_collated unique using index test3_s); SQL> recreate table test3b( s1 dm_2045_non_coll, s2 dm_2045_collated ); RDB$COLLATION_NAME C4
|
Commented by: @asfernandes Key for each character in UNICODE collation can have 6 bytes. Key for each character in UTF8 without collate can have 4 bytes. |
Commented by: @pavel-zotov > Key for each character in UNICODE collation can have 6 bytes. is it possible to create such unicode collation that one char will require 8 (eight) octets ? |
Modified by: @pavel-zotovstatus: Resolved [ 5 ] => Closed [ 6 ] |
Modified by: @dyemanovissuetype: New Feature [ 2 ] => Improvement [ 4 ] |
Modified by: @mrotteveel |
Submitted by: Sean Leyne (seanleyne)
Block progress on JDBC468
Votes: 1
With the evolution of disk subsystems, the ability to define the database page size larger than 16KB, to match RAID and Filesystem block sizes, would be beneficial.
Commits: 1706564 8186c1e FirebirdSQL/fbt-repository@1236d83
The text was updated successfully, but these errors were encountered: