PBXT 1.5.01-beta

Milestone information

Project:
PBXT
Series:
1.5
Version:
1.5.01-beta
Released:
2010-06-10  
Registrant:
Paul McCullagh
Release registered:
2010-06-10
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

Download files for this release

File Description Downloads

Release notes 

------- 1.5.01 Beta - 2010-06-10

RN2/8: Added system variable pbxt_data_log_buffer_size. The engine allocates 2 buffers of this size. The buffer is used to cache data before it is written to the data log. The buffer should be large enough to contain the largest BLOB written to the database. If not large enough, it will be automatically resized. A large buffer reduces the number of I/Os, because it only needs to be flushed when full, and at the end of a transaction.

RN2/7: pbxt_transaction_buffer_size has been deprecated, use pbxt_trx_log_buffer_size instead.

RN2/6: Added a cache for the data log (dlog-*.xt) files. The system variable pbxt_data_log_cache_size indicates the amount of memory to be allocated to the data log cache. The default is 16MB.

RN2/5: pbxt_log_cache_size has been deprecated, use pbxt_trx_log_cache_size instead. pbxt_log_file_threshold has been deprecated, use pbxt_trx_log_threshold instead. These names have been changed to avoid confusion with the data log system variables.

RN2/4: Extended record data is now no longer read by default on DELETE. The data is only read if it is required to find the record (i.e. contains "read" fields). All fields must be read for UPDATE because rows that are not changed need to be copied and rows that are changed are compared to the new value and only modified if they differ from the new value. Index coverage is now supported for both UPDATE and DELETE statement.

RN2/3: Changed the way the engine determines if a data log can be deleted. The data logs to be deleted are no longer stored in the checkpoint. Instead we not the "delete position" in the data log header. The delete position is the point in the transaction log where the "delete data log" record is inserted. Once all processes have read past this point (recover as well), it is safe to remove the data log.

RN2/2: Data logs are now written in the same manner as transactions logs. Previously, each thread had it's own data log for writing. Tests showed that this did not increase disk throughput. Far more useful is the ability to do "group commit". This is now possible on the data logs. All threads now write the same data log, and use the same "double-buffering" mechanism as the transaction log.
Other changes include:
- Merging of the data log sequential read functions into the transaction log sequential read functions.
- Data logs are now pre-allocated and zero filled, like the transaction logs.
- Added hooks for a data log cache.
- Reduced locking during compaction. Recovery now checks that a moved data log record is valid. Data logs are no longer deleted on recovery.

RN2/1: Fixed bug #430637: 'ERROR -86: Too many threads' reported during concurrecy test. I have removed the maximum thread limit. The system variable pbxt_max_threads has been depricated, and will no longer be supported in 1.1.

------- 1.1.01 Beta - Not yet released

RN1/17: Fixed bug #430637: 'ERROR -86: Too many threads' reported during concurrecy test. I have removed the maximum thread limit. The system variable pbxt_max_threads has been depricated, and will no longer be supported in 1.1.

RN1/16: Added system variable pbxt_index_dirty_threshold. This is a percentage value. When the number of dirty pages in the index cache reaches this level, all indices are flushed. The default value is 80. The value 0 indicates that the indices should only be flushed when no cache pages can be freed.

RN1/15: Implemented re-write flushing option. Re-write flushing can be more efficient because it causes more sequential writing and less random seek operations on file flush.

RN1/14: Implemented asynchronous flushing of files during checkpoint. This allows multiple files (current limit 10) to be flushed at the same time, which increases the total throughput on the disk.

RN1/13: Added the pbxt_record_write_threshold system parameter. This value determines when the writer will start to transfer data from the transaction log to the record pointer (.xtr) and handle data (.xtd) files. The default is 4MB. If the value is set to zero then the parameter is ignored. The writer will also begin to transfer data when the transaction log cache is exhausted, or the record cache is full.

RN1/12: Added option to buffer and sort data written by the writer thread. This allows writes to the handle data file (.xtd) to be sorted and consolidated.

RN1/11: Corrected a problem that sometimes caused a pause in activity when the record cache was full.

RN1/10: Fixed a bug in the record cache that caused PBXT to think it had run out of cache memory. The effect was that PBXT used less and less cache over time. The bug occurs during heavy concurrent access on the record cache. The affect is the PBXT gets slower and slower.

RN1/9: PBXT now commits every 10000 rows during an import. Import is done during ALTER TABLE, CREATE INDEX, LOAD DATA INFILE, REPAIR TABLE, OPTIMIZE TABLE and DROP INDEX statements.

RN1/8: Temporary tables changes: Index files of temporary tables are no longer flushed, on recovery temporary tables are ignored.

RN1/7: Indexes are no longer locked during index flush. This is done by copying index pages before modification, if a flush is in progress.

RN1/6: Added a compile option to compact indexes where data is mainly appended to the end of the index.

RN1/5: Changes to index flushing:
- Implemented flushing of index as a background task. Several threads can wait for the index flush to complete. Threads can be notified when it is safe to continue (i.e. when all pages have been marked clean).
- Increased the size of the page sort buffer used to sort pages to be written to the index file.
- Added an option to fill pages (in the case of consecutive pages) written to the index. An option also allows the block size written to the index cache to be changed. Note that performance tests (on Mac) show no overall improvement here, flush is faster, but more data is written.
- Flush the index file after dirty index pages have been marked clean, this allows work to continue during flushing, in low-memory situations.
- Added an option to write only the area of an index page that has changed.
- When out of index cache, we now check other tables to see if the index cache needs to be flushed. This is not done if more than 1/4 of the entire index cache is dirty due to the current index. Tables are sorted, the one with the most dirty index pages is flushed first.
- When out of index cache, if less than 1/4 of the entire index cache is dirty then no flushing is done. This can happen if another thread has cleaned the cache in the meantime.

RN1/4: Added try lock variation for R/W locks (required to fix deadlock RN1/3).

RN1/3: Fixed a deadlock that could occur during low index cache situations and added some checks for index corruption.

RN1/2: Added thread pool for executing asynchronous tasks.

RN1/1: Added memory resident tables. You can create a memory resident table using "STORAGE MEMORY", for example:

CREATE TABLE t1 (…) ENGINE=PBXT STORAGE MEMORY

------- 1.0.11-3 Pre-GA - Not released yet

RN326: Fixed bug #587740: pbxt-1.0.11-pre2-ga first time create partition table error. This was not a new bug. The problem was the PBXT system table's .frm files are corrupted when the first PBXT table created is a partition table.

RN325: Fixed the "to-sweep" column output in xtstat.

------- 1.0.11-2 Pre-GA - 2010-05-26

RN324: Fixed bug #584070:pbxt-1.0.11-pre-ga does not work with mysql 5.1.47. This bug fix removes a hack which was done to avoid running into the LOCK_plugin lock.

------- 1.0.11-1 Pre-GA - 2010-05-19

RN323: Detect corruption of a key length in an index page. This bug fix avoids a possible crash due to index page corruption.

------- 1.0.11 Pre-GA - 2010-05-11

RN322: Creating a table the references a non-existing table can now only be done if you set: foreign_key_checks = 0. Also fixed a failure when creating tables with recursive foreign key declarations.

RN321: Added "Extended record count" to the CHECK TABLE output. This indicates the number of records that have a data log component.

RN320: All tests now run with MySQL 5.1.46.

Changelog 

This release does not have a changelog.

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.