[SCM] CTDB repository - branch trans3 created - ctdb-1.0.108-71-g3d2d877

Ronnie Sahlberg sahlberg at samba.org
Mon Dec 14 20:25:51 MST 2009


The branch, trans3 has been created
        at  3d2d877d877146ca09a28a3a44f4840eb36fd377 (commit)

- Log -----------------------------------------------------------------
commit 3d2d877d877146ca09a28a3a44f4840eb36fd377
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 14:26:28 2009 +1100

    Revert "Make fetch_locked more scalable"
    
    This reverts commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d.

commit ac06a0e042e7d024060d6e87a49bda9ccc072c52
Merge: ea9e39369379939abf6a4076fa2014c10c1a9ad0 c5a0aef668a63f927d6184612b13ce316eb4a0be
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 14:25:55 2009 +1100

    Merge commit 'obnox/ctdb-wip-trans3' into trans3

commit c5a0aef668a63f927d6184612b13ce316eb4a0be
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 17:05:30 2009 +0100

    Revert "recovery: add special pull-logic for persistent databases"
    
    This reverts commit 8aef46d2aab3efb322dda51eaa202653cefd5222.
    
    This special recovery logic is wrong now with the transaction rewrite.
    The treatment of persistent databases will later be rewritten to use the
    database sequence number.
    
    Michael

commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 9 15:11:45 2009 +0100

    Make fetch_locked more scalable
    
    This patch improves the handling of the fetch_lock operation on non-persistent
    databases that ctdb clients have to do very frequently.
    
    The normal flow how this goes is the following:
    
    1. Client does a local fetch_lock on the database
    
    2. Client looks if the local node is dmaster.
       If yes, everything is fine
       If no, continue here
    
    3. Client unlocks the local record
    
    4. Client issues a "get me the record" call to ctdbd
    
    5. ctdbd goes out and fetches the dmaster role
    
    6. ctdbd tells the client to retry
    
    7. Client starts over again
    
    The problem is between step 6 and 7: Before the client has had the chance to
    retry (i.e. catch the record with a fetch_locked), another node might have come
    asking ctdbd to migrate away the record again. This is a real problem, I've
    seen >20 loops of this kind in real workloads.
    
    This patch does the following: Whenever ctdb receives a record as result of
    step 5, it puts the key on a "holdback list". As long as a key is on this list,
    a request to migrate away the dmaster is put on hold. It is the client's duty
    to issue the "CTDB_CONTROL_GOTIT" control when it has successfully done step 2
    after having asked ctdb to fetch the record. This will release the key from the
    "holdback list" and re-issue all dmaster migration requests.
    
    As a safeguard against malicious clients, once a second (default 1000msecs,
    tunable "HoldbackCleanupInterval" in milliseconds) ctdbd goes over the list of
    held back keys, deletes them and releases all held back migration requests.

commit 844aa6300ee4d87561e698001ebc15ac1e455528
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Dec 10 13:02:29 2009 +0100

    Import "talloc_array_length" from upstream talloc

commit 78ca29352aa39f4ef4e41096b92d55cb2e0d348a
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 16:39:58 2009 +0100

    tests: temporarily disable the transaction test tool.
    
    Make it return success for make test.
    This is temporarily disabled until the rewrite of the
    transaction code (in samba and the daemon) using the global
    lock feature has been ported to the ctdb client code.
    
    Michael

commit a7e3b5fac6b3f5d74473f26eb86c067b35647996
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 15:31:02 2009 +0100

    Add a new control CTDB_GET_DB_SEQNUM - fetch a persistent db's sequence number.
    
    Michael

commit 4b1dbcf0853bdc4832d39a477823ae34f216da52
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 14:19:55 2009 +0100

    define CTDB_DB_SEQNUM_KEY - used with the new implementation of transactions.
    
    Michael

commit 1640da1cab7e8b545367824204c82931f3346848
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 9 17:20:23 2009 +0100

    Tiny simplification of ctdb_queue_packet()

commit 6af5e74a21546d723008d69d6752ebebf898c947
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Dec 8 17:00:55 2009 +0100

    Rename a struct member for clarity

commit f66428f9d2013080a414404c1ba6117888352fd6
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 17:59:49 2009 +0100

    server: add a new control CTDB_CONTROL_TRANS3_COMMIT
    
    This is a simplified version of the trans2 commit control:
    It just rolls out the marshall buffer to all active nodes.
    
    It is the main ctdbd part of the re-implementation of the
    persistent transactions. The client code is changed to
    take a global lock to start a transactions and store into
    the marshal buffer instead of writing to the local tdb
    under a local transaction.
    
    The old transaction implementation is going to be
    removed in a later commit.
    
    Michael

-----------------------------------------------------------------------


-- 
CTDB repository


More information about the samba-cvs mailing list