mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
ndb - bug#27651 (5.1)
Only prepare "next" GCI if we're in the first 4 highest GCI's to avoid we can get several buckets with same GCI
This commit is contained in:
parent
ee4a94a0c1
commit
cd3c4a9786
1 changed files with 16 additions and 4 deletions
|
@ -979,7 +979,7 @@ NdbEventOperationImpl::printAll()
|
|||
NdbEventBuffer::NdbEventBuffer(Ndb *ndb) :
|
||||
m_system_nodes(ndb->theImpl->theNoOfDBnodes),
|
||||
m_ndb(ndb),
|
||||
m_latestGCI(0),
|
||||
m_latestGCI(0), m_latest_complete_GCI(0),
|
||||
m_total_alloc(0),
|
||||
m_free_thresh(10),
|
||||
m_min_free_thresh(10),
|
||||
|
@ -1470,7 +1470,7 @@ NdbEventBuffer::execSUB_GCP_COMPLETE_REP(const SubGcpCompleteRep * const rep)
|
|||
, m_flush_gci
|
||||
#endif
|
||||
);
|
||||
|
||||
Uint32 idx = bucket - (Gci_container*)m_active_gci.getBase();
|
||||
if (unlikely(bucket == 0))
|
||||
{
|
||||
/**
|
||||
|
@ -1515,8 +1515,20 @@ NdbEventBuffer::execSUB_GCP_COMPLETE_REP(const SubGcpCompleteRep * const rep)
|
|||
}
|
||||
reportStatus();
|
||||
bzero(bucket, sizeof(Gci_container));
|
||||
bucket->m_gci = gci + ACTIVE_GCI_DIRECTORY_SIZE;
|
||||
bucket->m_gcp_complete_rep_count = m_system_nodes;
|
||||
if (likely(idx < ACTIVE_GCI_DIRECTORY_SIZE))
|
||||
{
|
||||
/**
|
||||
* Only "prepare" next GCI if we're in
|
||||
* the first 4 highest GCI's...else
|
||||
* this is somekind of "late" GCI...
|
||||
* which is only initialized to 0
|
||||
*
|
||||
* This to make sure we dont get several buckets with same GCI
|
||||
*/
|
||||
bucket->m_gci = gci + ACTIVE_GCI_DIRECTORY_SIZE;
|
||||
bucket->m_gcp_complete_rep_count = m_system_nodes;
|
||||
}
|
||||
|
||||
if(unlikely(m_latest_complete_GCI > gci))
|
||||
{
|
||||
complete_outof_order_gcis();
|
||||
|
|
Loading…
Reference in a new issue