If You Care About Performance, Employ User Defined Types
Blog post from ScyllaDB
User Defined Types (UDTs) in ScyllaDB offer a significant performance advantage by allowing the definition of a struct with multiple typed named fields, enabling them to be used as a column type in table definitions. By using UDTs, users can achieve more than a 225% increase in write throughput, a 150% increase in read throughput, and approximately 35% better latency compared to traditional column storage methods. This performance gain is partly because UDTs, when defined as frozen, share the same metadata for TTL and writetime across fields. Tests comparing UDTs with regular columns in various scenarios demonstrated substantial improvements in both write and read operations, although UDTs require additional client-side processing for serialization and deserialization. Despite these advantages, ScyllaDB does not currently support updating a subset of UDT fields, though this feature is planned for future releases. The discussion of UDTs was part of a presentation at the ScyllaDB Summit 2017, highlighting their potential for enhancing database performance.