1. Provide better control over bloat. petagres will prevent bloat by allowing in-place updates in common cases and by reusing space as soon as a transaction that has performed a delete or non-in-place-update has committed. In short, with this new storage, whenever possible, we’ll avoid creating bloat in the first place.
2. Reduce write amplification both by avoiding rewrites of heap pages and by making it possible to do an update that touches indexed columns without updating every index.
3. Reduce the tuple size by shrinking the tuple header.
4. Delete marking in indexes: This will allow inplace updates even when index columns are updated and additionally with this we can avoid the need for a dedicated vacuum process to perform retail deletes.
5. Statement level rollback, a transaction mechanism compatible to oracle and mysql.
Major Features
1. Provide better control over bloat. petagres will prevent bloat by allowing in-place updates in common cases and by reusing space as soon as a transaction that has performed a delete or non-in-place-update has committed. In short, with this new storage, whenever possible, we’ll avoid creating bloat in the first place.
2. Reduce write amplification both by avoiding rewrites of heap pages and by making it possible to do an update that touches indexed columns without updating every index.
3. Reduce the tuple size by shrinking the tuple header.
4. Delete marking in indexes: This will allow inplace updates even when index columns are updated and additionally with this we can avoid the need for a dedicated vacuum process to perform retail deletes.
5. Statement level rollback, a transaction mechanism compatible to oracle and mysql.
6. No vacuum.
7. No freeze, No transaction id wraparound.
For a complete list of features, read full release notes [here](https://linn0.github.io/).