Re: Double sorting split patch
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2011-10-04T08:12:57Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix contrib/seg's GiST picksplit method.
- 2a6ebe70fb2f 9.1.0 cited
-
Some copy editing of pg_read_binary_file() patch.
- 290f1603b420 9.1.0 cited
On 22.09.2011 22:12, Alexander Korotkov wrote:
> Patch without that dead code is attached.
Thanks.
Can you elaborate the consider-split algorithm? The criteria to select
the new split over the previously selected one is this:
> ! /*
> ! * If ratio is acceptable, we should compare current split with
> ! * previously selected one. If no split was selected then we select
> ! * current anyway. Between splits of one dimension we search for
> ! * minimal overlap (allowing negative values) and minimal ration
> ! * (between same overlaps. We switch dimension if find less overlap
> ! * (non-negative) or less range with same overlap.
> ! */
> ! range = diminfo->upper - diminfo->lower;
> ! overlap = ((leftUpper) - (rightLower)) / range;
> ! if (context->first ||
> ! (context->dim == dimNum &&
> ! (overlap < context->overlap ||
> ! (overlap == context->overlap && ratio > context->ratio))) ||
> ! (context->dim != dimNum &&
> ! ((range > context->range &&
> ! non_negative(overlap) <= non_negative(context->overlap)) ||
> ! non_negative(overlap) < non_negative(context->overlap)))
> ! )
> ! {
Why are negative overlaps handled differently across dimensions and
within the same dimension? Your considerSplit algorithm in the SYRCoSE
2011 paper doesn't seem to make that distinction.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com