[SCM] CTDB repository - branch 1.2.40 created - ctdb-1.9.1-535-g0a9484c

Ronnie Sahlberg sahlberg at samba.org
Sun Feb 5 16:50:42 MST 2012


The branch, 1.2.40 has been created
        at  0a9484c20cb0d3cd58c0ffeabca81c7b9aeca12d (commit)

- Log -----------------------------------------------------------------
commit 0a9484c20cb0d3cd58c0ffeabca81c7b9aeca12d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Feb 6 09:22:37 2012 +1100

    New version 1.2.40

commit a4888d22b56a149a323a7f1e50ddcb53a6fdd877
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Feb 1 09:32:02 2012 +1100

    ReadOnly: update the loop test tool to print number of fetches per second

commit f0274a3551ae984df8fb08d0c366e67e7ef6eb28
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 28 13:38:32 2011 +1100

    libctdb: dont allow ctdb_writerecord() for readonly records

commit 91f5dcc5699a9ea9052c8d3c3c619c1d90c0cd58
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 28 12:41:27 2011 +1100

    ReadOnly: If record does not exist, upgrade to write-lock
    
    If we attempt a readonly lock request for a record that do not exist (yet)
    in the local TDB, then upgrade the request to ask for a write lock and force a
    request for migrate the record onto the local node.
    This allows the "only request record on second local request for known contended records"
    heuristics to try to avoid creating readonly delegations unless we have good reason to
    assume it is a contended record.

commit 22e370afff7e1d236020071fa3d505c9fd3cfbd8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Feb 1 10:26:41 2012 +1100

    ReadOnly: add readonly record lock requests to libctdb
    
    Initial readonly record support in libctdb.
    New records are not yet created by the library but extising records will be
    This needs a bit more tests before we can drop the "old style" implementatio
    code in client/ctdb_client.c

commit 2b07390620c16ba6515a37071bfc8c4e4b0d9ce9
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 28 11:44:19 2011 +1100

    ReadOnly: fix bug writing incorrect amount of data in delegated record
    
    Fix bug when ctdbd updates the local copy of a delegated record to write the correct
    amount of data to the record.

commit 97e6d4c0eb0acb8543cb870943a8145f7f9eb499
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 24 13:19:30 2011 +1100

    ReadOnly DOCS: update the docs for readonly delegations to remove the passage that records are written/updated by the client

commit c8ddb201ae1e399d45669d16be333aa9d744878c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 24 13:14:26 2011 +1100

    ReadOnly: Dont update the record header from the calling client. While it is convenient since it avoids having to create a child process from the main dameon for writing the updated record it makes the cleitn more complex.
    
    Remove the code in the example client code that writes the record to the local tdb.
    Add code to the local ctdbd processing of replies to check if this reply contain a ro delegation and if so, spawn a child process to lock the tdb and then write the data.

commit d63dc590e329ed553a4436a6555d91ad3d9fb363
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 13 18:47:18 2011 +1000

    ReadOnly: revokechild_active is a list, not a context.
    
    Dont reset the pointer to NULL after deleting the first entry, loop deleting one entry
    at a time until they are all gone or we will leak some memory and possibly a process.

commit 70a7eebd580d1ff6d70528ec3890e9e9cc186ed5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 13 18:41:34 2011 +1000

    fix some compiler warnings for the test tools

commit 44f142cb93690acba6df5ce303d6df85bd5ae6f8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 13 18:38:20 2011 +1000

    ReadOnly: Rename the function ctdb_ltdb_fetch_readonly() to ctdb_ltdb_fetch_with_header() since this is what it actually does.

commit 459e3d7e26ec3cbbbdb7be7333c7e5ce70ea7f00
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Sep 1 11:40:51 2011 +1000

    ReadOnly: update the documentation about readonly locks

commit 9cf194a24ce5f8544ee989f07a6179a372e40b1e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Sep 1 11:08:18 2011 +1000

    ReadOnly: add a new control to activate readonly lock capability for a database.
    let all databases default to not support this  until enabled through this control

commit 96c4a06717a5792bf94b6c0c959117614a0e8b19
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Sep 1 10:28:15 2011 +1000

    ReadOnly: add a readonly flag to the getdbmap control and show the readonly setting in ctdb getdbmap output

commit 33c305e37fae6f804a33df6de581e9c4e0838d1e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Sep 1 10:21:55 2011 +1000

    ReadOnly: Change the ctdb_db structure to keep a uint8_t for flags instead of a boolean for
    the persistent flag.
    This is the same size as the original boolean but allows ut to add additional flags for the database

commit 85281f60b6930a9b78fb864460db055d544d21df
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Aug 23 10:41:52 2011 +1000

    ReadOnly: Check the readonly flag instead of whether the tdb pointer is NULL or not

commit 97205e83ef00ae73803cf310714cebb7807f425d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Aug 23 10:37:20 2011 +1000

    ReadOnly: add description of readonly records

commit b208c4e032d4b19c4920828be27c2771f63bfcc0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 17 16:14:57 2011 +1000

    ReadOnly: clear out the tracking record once a revoke is completed

commit fdbccb0b5000b88fb85e7a4148af8a230764934d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Jul 21 15:59:37 2011 +1000

    ReadOnly: When the client wants a readwrite lock but the local node is the dmaster and also have delegations active we must send a CALL to the local daemon to trigger it to revoke the delegations

commit 1a70dd3587affca2cc84c96d107d90093eee885c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Jul 21 15:58:56 2011 +1000

    ReadOnly: Change the update_record test tool to use the new fetchlock routine that can do either normal or readonly fetchlock

commit 385e1e087577b843b56b12f6ea8ab4ddc9520ff1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:47:15 2011 +1000

    ReadOnly: Add a test tool that requests a readonly delegation in a loop

commit 613ddaf911746dff63f21df4bf4393443541aec3
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:43:55 2011 +1000

    ReadOnly: Add a test tool to fetch a record, requesting a readonly delegation and lock the record once

commit b149112cbade3d6cae614873c4e4c4119439e1ea
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:37:37 2011 +1000

    ReadOnly: Add clientside code to fetch readonly records

commit a6a601ba286f16527d90f695272b616c15003950
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:31:44 2011 +1000

    ReadOnly: Add a ctdb_ltdb_fetch_readonly() helper function

commit a7b633ed1c1755e1afea13bbf9b3891d32200de3
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:17:29 2011 +1000

    ReadOnly: Add handlign of readonly requests readwrite requests, delegations and revoking of delegation to the processing loop for CALL requests coming in from a local client via domain socket

commit 8e5d7609ec473059b3ae12f4e7ef911b4b1a2339
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 15:13:47 2011 +1000

    ReadOnly: Add processing for ReadOnly delegation requests and revoke requests to the processing loop for CALL packets we receive from different nodes.
    
    This implements the ReadOnly and ReadWrite request processing, delegation and revoking of delegations for all requests coming in across the network from a remote node.

commit bce124818f659d5cf14db953e23d0b47b59b6465
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 14:25:29 2011 +1000

    ReadOnly: Once recovery has finished, make sure to free all revoke child processes and trigger the destructors for all deferred calls to re-queue the original packets to the input packet processing function

commit b9ddacf2652eedd74b244b50666113de6a2f50fb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 14:23:05 2011 +1000

    ReadOnly: When releasing all deferred calls that blocked during revoke of all previous delegations, add a 1 second grace/delay for any new readonly delegation requests so that the read-write fetch-lock porcess has a chance to make progress

commit 0ff8599518b6601e687d89e7e5413fd732d4d784
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 14:21:04 2011 +1000

    ReadOnly: Add a new flag to call request packet to indicate that the client wants a readonly delegation

commit c6b5c69e771d62189f196c2c6a9321d218da1546
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Aug 23 10:27:31 2011 +1000

    ReadOnly: Add a function to start a revoke of all delegations for a record.
    This triggers a child process to be created to perform the actual potentially blocking calls that are required.

commit bc80b6f8575142b29e817c250d5a423d4b85e04d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 13:49:17 2011 +1000

    ReadOnly: Add functions to register CALLs to a context used to handle deferal of processing of CALL commands.
    Once the contexts are freed, the deferred calls are re-issued to the input packet processing functions again.
    This is needed when/if a CALL can not currently be processed by the main engine due to the record being locked down for revoking of all delegations.
    
    The data is passed through several layers of callbacks, and finally a timed event callback to ensure that the processing of the packet will be restarted again at the topmost eventloop, avoinding event loop nesting.

commit e50db7a113109265ec52a8a30eb49284ef8b9048
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 13:30:12 2011 +1000

    ReadOnly: Add an extra flag to ctdb_call_local to specify whether we want to write the record and header back to the tdb (for example we do when performing dmaster migrations)

commit 791617f97546ad44f8ea6aaa042003d71106fa72
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 13:20:32 2011 +1000

    ReadOnly: After recovering all databases, make sure to clear out the tracking database used to track delegations and revoke. This is because the recovery will implicitely result in a revoke of all delegations.

commit bcc62671898a6de53d380c80ad2f37f19ae16ec3
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 13:15:48 2011 +1000

    ReadOnly: Add "readonly" flag to the ctdb_db_context to indicate if this database supports readonly operations or not. Add a private lock-less tdb file to the ctdb_db_context to use for tracking delegarions for records
    
    Assume all databases will support readonly mode for now and se thte flag for all databases. At later stage we will add support to control on a per database level whether delegations will be supported or not.

commit 970ef8981f4c139d4a4dbfcf97085911b438fa14
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 13:08:21 2011 +1000

    ReadOnly: After performing a recovery, clear out all flags related to readonly delegations and revoke

commit 486cc67ffd0406cc6b58f471fcc6cdf10b6e450b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 12:30:33 2011 +1000

    ReadOnly: Add a new command 'ctdb cattdb'. This fucntion differs from 'ctdb catdb' in that 'cattdb' will always traverse the local tdb file only, while 'catdb' does a cluster traverse.
    
    Since some record flags may differ between nodes in the cluster when read only delegations are in use, cattdb is needed when you need to know the exact flag settings on the current node itself.

commit 48f8b76890e26c7adfd196a7df8c4ecd0ac685d7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 12:21:33 2011 +1000

    ReadOnly: Add printing of the record flags when we are traversing a database to print its content.

commit 682d536d2f018b6f743781ada17544797e866dbf
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 12:17:27 2011 +1000

    ReadOnly: Add 4 new record flags to handle read only delegation and revoking of delegations

commit d3a11e9b36cb8f54dea1dac4453ad0e2225e270f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 12:13:53 2011 +1000

    ReadOnly: add a new test tool that does a fetchlock on a record, then bunps the RSN by 10 and writes the new content to the record as sprintf("%d", rsn)

commit 807680f7a3a3f4a2e5199f8c1ccd972759dae456
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 12:06:37 2011 +1000

    ReadOnly: Add clientside functions to send the UPDATE_RECORD control

commit 6844863c5d73dd26a401f1e14c9e6df3891ea604
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 11:50:14 2011 +1000

    ReadOnly: Add test tool to validate the functions to manipulate and enumerate the bitmap of nodes to where we have readonly delegations

commit 61f82f7efe8ce6197f226fa4ed292ed63bc7af96
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 11:39:50 2011 +1000

    ReadOnly: Add helper functions to manipulate a TDB_DATA as a bitmap for nodes that we are tracking as having a readonly delegation

commit 26c464ae80405e5bd62dc4e3faa3909388d4ae49
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jul 20 11:27:05 2011 +1000

    ReadOnly records: Add a new RPC function FETCH_WITH_HEADER.
    This function differs from the old FETCH in that this function will also fetch the record header and not just the record data

commit 3ea1879864cf286c51b70efde6ee06b9cd9bcf2b
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Nov 1 20:52:57 2011 +1100

    LCP IP allocation algorithm - try harder to find a candidate source node
    
    There's a bug in LCP2.  Selecting the node with the highest imbalance
    doesn't always work.  Some nodes can have a high imbalance metric
    because they have a lot of IPs.  However, these nodes can be part of a
    group that is perfectly balanced.  Nodes in another group with less
    IPs might actually be imbalanced.
    
    Instead of just trying the source node with the highest imbalance this
    tries them in descending order of imbalance until it finds one where
    an IP can be moved to another node.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit f308b7027df9a6c35c845306ed7b72568ea6b81a
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Nov 1 19:49:38 2011 +1100

    LCP IP allocation algorithm - new function lcp2_failback_candidate()
    
    There's a bug in LCP2.  Selecting the node with the highest imbalance
    doesn't always work.  Some nodes can have a high imbalance metric
    because they have a lot of IPs.  However, these nodes can be part of a
    group that is perfectly balanced.  Nodes in another group with less
    IPs might actually be imbalanced.
    
    Factor out the code from lcp2_failback() that actually takes a node
    and decides which address should be moved to which node.
    
    This is the first step in fixing the above bug.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

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


-- 
CTDB repository


More information about the samba-cvs mailing list