03.03.2016 18:34, Slavomir Skopalik wrote: > > But value encoding cannot be implemented until we switch from fragment > compression to true record level compression.
I was not speaking about any encoding, just about compacting the record. Fragments are not compressed independently. The whole record is being prepared for compression (control bytes are generated) and then splitted into multiple chunks accordingly to the control bytes, so that a single compressed sequence is not interrupted in the middle: 'aaaaoooiiiuee' {-4, 'a'} ! {-3, 'o'} ! {-3, 'i'} ! {1, 'u'} ! {2, 'ee'} This compressed sequence can be fragmented at any of the "!" points. This is needed to decompress them separately, without copying all the fragments into a single buffer before decompressing, i.e. fragment by fragment. But for the pack/unpack approach, we just copy data in chunks. Some field may have first N bytes stored in fragment 1 and the remaining M bytes stored in fragment 2. We know we need N+M bytes for the record. So we copy N bytes from fragment 1, release the page, fetch fragment 2 and continue copying N+1..M bytes into the record. Fragmenting is even easier than now, it can happen at any place. Am I missing something obvious? Dmitry ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel