Repository navigation
Conversation
4b6fe54 to
668bd92
Compare
jorisdral
left a comment
There was a problem hiding this comment.
Changes look good to me! I have a few small requests and then we can merge this
| -- batches improves overall performance but some updates will take a lot | ||
| -- longer than others. The default is to use a large batch size. | ||
| , confMergeBatchSize :: !MergeBatchSize | ||
| } |
There was a problem hiding this comment.
I think I'd prefer the previous version, where the documentation was on TableConfig. So let's rewind that
There was a problem hiding this comment.
I'll revert to the previous version
| * The record fields of `TableConfig` are now rendered in the haddocks, with | ||
| their types and documentation. See [issue | ||
| #795](https://github.com/IntersectMBO/lsm-tree/issues/795) and [PR | ||
| #885](https://github.com/IntersectMBO/lsm-tree/pull/885). |
There was a problem hiding this comment.
I think this is a breaking change, since we're exporting the fields no longer as part of TableConfig, but as separate entities in the export list
| defaultTableConfig, | ||
| confMergePolicy, | ||
| confMergeSchedule, | ||
| confSizeRatio, | ||
| confWriteBufferAlloc, | ||
| confBloomFilterAlloc, | ||
| confFencePointerIndex, | ||
| confDiskCachePolicy, | ||
| confMergeBatchSize, |
There was a problem hiding this comment.
Did you deliberately sort them a different way? Let's keep the order as it was
| defaultTableConfig, | |
| confMergePolicy, | |
| confMergeSchedule, | |
| confSizeRatio, | |
| confWriteBufferAlloc, | |
| confBloomFilterAlloc, | |
| confFencePointerIndex, | |
| confDiskCachePolicy, | |
| confMergeBatchSize, | |
| confMergePolicy, | |
| confSizeRatio, | |
| confWriteBufferAlloc, | |
| confBloomFilterAlloc, | |
| confFencePointerIndex, | |
| confDiskCachePolicy, | |
| confMergeSchedule, | |
| confMergeBatchSize, | |
| defaultTableConfig, |
| confMergePolicy, | ||
| confMergeSchedule, | ||
| confSizeRatio, | ||
| confWriteBufferAlloc, | ||
| confBloomFilterAlloc, | ||
| confFencePointerIndex, | ||
| confDiskCachePolicy, |
There was a problem hiding this comment.
Did you deliberately sort them a different way? Let's keep the order as it was
| confMergePolicy, | |
| confMergeSchedule, | |
| confSizeRatio, | |
| confWriteBufferAlloc, | |
| confBloomFilterAlloc, | |
| confFencePointerIndex, | |
| confDiskCachePolicy, | |
| confMergePolicy, | |
| confSizeRatio, | |
| confWriteBufferAlloc, | |
| confBloomFilterAlloc, | |
| confFencePointerIndex, | |
| confDiskCachePolicy, | |
| confMergeSchedule |
There was a problem hiding this comment.
I have maintained the way the order was
668bd92 to
e6c390d
Compare
The fields were missing from the docs because Haddock only shows record fields when the constructor is exported, and we keep TableConfig's constructor hidden on purpose so that adding a field later isn't a breaking change (that's why the (..) approach in IntersectMBO#816 didn't fly). So instead of listing the fields inside the TableConfig export, I export the selectors as plain functions from Database.LSMTree and Database.LSMTree.Simple. The constructor is still hidden, but now each field shows up with its type. The field docs stay on TableConfig. Resolves IntersectMBO#795.
e6c390d to
c891c5f
Compare
Description
Resolves #795.
The
TableConfigfields were missing from the docs because Haddock only shows record fields when the constructor is exported, and we keep the constructor hidden on purpose so that adding a field later isn't a breaking change which is why the(..)approach in #816 didn't fly.So instead of listing the fields inside the
TableConfigexport, this exports the selectors as plain functions fromDatabase.LSMTreeandDatabase.LSMTree.Simple. The constructor is still hidden, but each field now shows up in haddocks with its type. The field documentation stays onTableConfig, as before.Before(Hackage, 1.1.1.0): https://hackage-content.haskell.org/package/lsm-tree-1.1.1.0/docs/Database-LSMTree.html#t:TableConfig — the type doc only, no fields.
I also checked
blockioandbloomfilterfor the same export pattern, as asked in the issue —TableConfigwas the only one.Checklist