Thank you all for test driving ClouSE and submitting bug reports and suggestions. Keep them coming! That’s what Betas are for :-).
Commit cf1491
Add support for Percona Server 5.5.29-rel30.0. Percona Server is supported only on Linux. The handlerton library for Percona Server is ha_clouse-5.5.29-p30.0.so.
Commit 172b84
Add support for MySQL 5.5.30 and 5.6.10. Now ClouSE supports both MySQL 5.5.x and 5.6.x release series.
Commit 0f9e00
Add support for MySQL partitioning. Partition’s metadata is saved to the cloud storage and recovered on auto-discovery. Subpartitions are currently not supported. If you need ClouSE to work with subpartitions please contact us.
Commit 6472a9
Add support for ClouSE on Microsoft Windows. ClouSE builds are now available both for Linux and Windows. The cloud data format is the same across all platforms (Windows, Linux, 32-bit, 64-bit).
Commit 077e5d
Implement auto-discovery logic for missing tables when recovering from cloud storage. Auto-discovery has always worked for existing tables: the table’s .frm file gets transparently recovered from the cloud storage on first access. This change makes it so that the table’s .frm file is transparently removed if the table is missing in the cloud storage.
Commit 1025d3
Previously under stress ClouSE could hang while accessing cloud storage. This is now fixed.
Commit a6f921
Add support for MySQL 5.5.29. Drop support for MySQL 5.5.17 – 5.5.18. If you need a ClouSE build for MySQL prior 5.5.19 please contact us.
Commit 03fa7b
Implement support for DECIMAL fields in keys. This removes the following Beta limitation: DECIMAL fields cannot be used in keys.
Commit fcc55c
Previously under stress ClouSE could run out of memory due to a memory leak. This is now fixed. The fix also affects WebStor.
Commit f764e5
Implement support for tables without a primary key. This removes the following Beta limitation: The table must have a primary key.
Commit ab62c2
Previously NULL values were not properly stored if used in FLOAT fields. This is now fixed.
Commit 10c9e4
Allow MySQL query cache to cache query results in auto-commit mode.
Commit 3da996
Previously the query optimizer could choose a full table scan even when it was much more efficient to use an index. SELECT queries that have WHERE clause with IN (expr [, expr] ...) conditions were most likely to incur a performance hit. This is now fixed.
Commit 4e4caa
Implement support for BLOB fields larger than 128 KB. Now BLOB fields can have any size that is supported by MySQL. Small BLOB fields continue to be stored in the record for efficiency (so there is virtually no penalty for using a BLOB instead of a VARCHAR(N)). The on-disk data format is backward compatible, and the previous versions of ClouSE would gracefully fail if they encounter BLOBs created by ClouSE v1.0b.1.5. This removes the following Beta limitation: BLOB fields are stored in the record thus are limited by the max record size (128 KB).
Commit f68411
Make Weblob operations more resilient to intermittent cloud storage connection failures.
Commits 0a4889, 1723b4, 242b5c
WebStor: make WebStor cloud storage performance benchmark (wsperf) print correct statistics.
Commits 677878, 40e455
WebStor: clean up codebase, error messages and documentation to consistently use general cloud storage terminology instead of Amazon S3. The WebStor API now accepts 3 storage types: WST_S3, WST_GCS, WST_WALRUS. The s3test utility is renamed into wscmd to better reflect its purpose.
Commit a0f640
Add support for Google Cloud Storage as a cloud storage provider. Now a Google Cloud Storage location can be specified in the clouse_cloud_data_url configuration option using the gs:// protocol scheme, e.g.
gs://commondatastorage.googleapis.com/some-bucket/db0.
Commit 1f20ec
Add support for MySQL 5.5.27 – 5.5.28. Drop support for MySQL 5.5.14 – 5.5.16. If you need a ClouSE build for MySQL prior 5.5.17 please contact us.
Commit 18bd3c
Implement NULL support for all data types. The on-disk data format is backward compatible, and the previous versions of ClouSE would gracefully fail if they encounter tables with NULLable fields created by ClouSE v1.0b.1.4. This removes the following Beta limitation: Integer, date / time, decimal, float, bit, enum, and set fields must be declared NOT NULL.
Commit 622f05
Implement TRUNCATE statement.
Commit e32f5e
Previously some SELECT statements (e.g. using index_merge w/intersect query execution plans) may mistakenly miss records. This is now fixed.
Commit 1f424e
Add support for MySQL 5.5.22 – 5.5.25. Drop support for MySQL 5.5.8 – 5.5.13. If you need a ClouSE build for MySQL prior 5.5.14 please contact us.
Commit 1c3868
Implement support for Weblob content type. Previously, all Weblobs were uploaded with the application/octet-stream content type, which could result into Web Browsers’ showing the Weblob content incorrectly (e.g. a Web Browser could try to save an image file to disk instead of showing the image). Now the content type is set according the the Weblob name (using a name-to-content-type mapping derived from this document).
Commits 055291, 2413dc, c6fc3b, dee2c9, 683d40, 268705, ea5483, a38ba2
Implement miscelaneous performance optimizations.
Commit aada72
Implement high-performance cloud storage access layer. The functionality is also released as WebStor – the high performance open source C++ library for Amazon S3.
Commit 909582
Add support for MySQL 5.5.20 and 5.5.21.
Commit 5490be
Add support for specifying weblob names instead of just extensions. Ability to specify names is important for SEO, so now instead of ‘extension:jpg’ the whole name can be specified as ‘name:creative-thinking.jpg’. This is a breaking change.
Commit 3d9cd1
Change versioning structure: split feature version into a major.minor pair, so instead of 1b.1.0 the new version is 1.0b.1.0.
Commit 143d8a
Increase data page size from 64 KB to 256 KB to improve network bandwidth utilization on high-latency connections.
Commit d2a432
Implement AUTO_INCREMENT semantics similar to InnoDB’s “interleaved” lock mode. Previously, AUTO_INCREMENT was implemented as a global monotonically increasing counter; the existing values in the table were not taken into account. This could lead to auto-incremented values overriding existing values in the table. Now the auto-incremented values are picked to be higher than any existing value in the table.
Commit 09c143
Now weblobs must have the LONGBLOB type. Allowing BLOB type could lead to confusion when weblob streaming was used: the content was correctly uploaded in small chunks, but the result got truncated by the SELECT statement on retrieval.
Commit a6ae82
Previously under stress the buffer manager could excessively write pages to the cloud storage. This is now fixed.
Commit 1fa5ab
Previously the transaction commit grouping logic was not effective in some cases. This is now fixed.
Commit 2fcd83
Implement checkpoint on shutdown. The checkpoint is not required for proper functioning (crash at any point is a fully supported scenario), but may help with restart performance.
Commit 6d6841
Implement more aggressive checkpoint flushing. Previously checkpoints were completely lazy and didn’t flush the log to the durable storage.
Commit 4a4f97
Implement “sorted split” logic for B-trees. Now when a record is inserted into the end of a B-tree the page is split 90/10% instead of 50/50%. This is a standard B-tree optimization that was cut from the initial Beta release.
Commit 520c5a
Previously under stress ClouSE could crash due to a double-delete problem in the lock manager. This is now fixed.
Commit 0ad2ec
Previously lock escalation logic might not properly kick in, leading to excessive memory usage and potentially out-of-memory errors. This is now fixed.
Initial relase of ClouSE v1.0 Beta.