summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * This needs more testing firstRonnie Sahlberg2011-03-211-5/+0
| | | | | | | | | | | | | | | | Revert "ctdbd: call tdb_reopen_all() in freeze child." This reverts commit 3d9828861c771a060923f3181fa8224e0122bffc. (This used to be ctdb commit 55c3446c9ba82d24b1d7db92bc3611fd8027b7fb)
| * ctdbd: call tdb_reopen_all() in freeze child.Rusty Russell2011-03-211-0/+5
| | | | | | | | | | | | | | In theory, the ctdbd parent shouldn't be holding any locks, but it's a good idea to always call tdb_reopen_all() after a fork(). (This used to be ctdb commit 3d9828861c771a060923f3181fa8224e0122bffc)
| * ctdbd: fix lock held on error ("ctdb_req_dmaster from non-master.")Rusty Russell2011-03-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should release the lock on the record before returning; otherwise the recovery (which tries to freeze the database) will fail. Symptoms are as follows: ctdbd: pnn 15 dmaster request for new-dmaster 19 from non-master 1 real-dmaster=5 key f049c3c8 dbid 0x6cf2837d gen=1148812532 curgen=1148812532 c->rsn=2 header.rsn=15 reqid=2147483585 keyval=0x4f464e49 ctdbd: ctdb_req_dmaster from non-master. Force a recovery. ... ctdbd: freeze_lock-1:server/ctdb_freeze.c:55 Failed to lock database registry.tdb CQ:1022545 (This used to be ctdb commit 38b2dbe0605816742e74e2b8a811eaba99c7e12d)
| * Deferred attach: create the timed event as a child context of the da context ↵Ronnie Sahlberg2011-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | we want to delete. Othwervise the da context can be timed out and talloc_free()d but the event for this already freed object will still trigger, causing a talloc error and shutdown. CQ S1022515 (This used to be ctdb commit 2fd27bdedb1e0d6558c07e1b74fc8e70ddf593dc)
| * IP reallocation. If a public address is already hosted on the node when we ↵Ronnie Sahlberg2011-03-141-1/+1
| | | | | | | | | | | | | | | | | | | | startup, log a warning message but do not cause the recovery to fail. CQ S1022356 Signed-off-by: Michael Adam <obnox@samba.org> (This used to be ctdb commit 89f8169c24da96c1fdd0ac19b8a1e0e1df01a72a)
| * Vacuuming: initialize a variable to avoid a harmless valgrind hitRonnie Sahlberg2011-03-141-1/+2
| | | | | | | | | | | | Signed-off-by: Michael Adam <obnox@samba.org> (This used to be ctdb commit ad709e99bcad7a4884f2336663d161ba61307ae5)
| * Dont allow clients to connect to databases untile we are well past and throughRonnie Sahlberg2011-03-142-1/+3
| | | | | | | | | | | | | | | | | | | | the initial recovery phase CQ S1022412 Signed-off-by: Michael Adam <obnox@samba.org> (This used to be ctdb commit e02bbd915b7151c615ff64f09ad9abc9720bef7d)
| * vacuum: fix a comment typoMichael Adam2011-03-141-1/+1
| | | | | | | | (This used to be ctdb commit a16dc65b4602da5ce2c16578bec2e7882aff240d)
| * vacuum: use insert_record_into_delete_queue in ctdb_local_schedule_for_deletion.Michael Adam2011-03-141-8/+3
| | | | | | | | | | | | | | This is to take advantage of the hash collision handling and logging also in ctdb_local_schedule_for_deletion. (This used to be ctdb commit 52193b6692091e341ed7a81dbd9a61ae49a8aac5)
| * vacuum: refactor insert_record_into_delete_queue out of ↵Michael Adam2011-03-141-25/+40
| | | | | | | | | | | | ctdb_control_schedule_for_deletion (This used to be ctdb commit be4b63ee18933524f780df5c313447e5ef0786d1)
| * vacuum: raise a debug level from INFO to DEBUGMichael Adam2011-03-141-1/+1
| | | | | | | | | | | | when overwriting an existing entry in the delete_queue. (This used to be ctdb commit f28e636cc4a04ef982672d5f569ad6b6b963db1f)
| * ctdb_ltdb_store_server: honour the AUTOMATIC record flagMichael Adam2011-03-141-0/+19
| | | | | | | | | | | | | | | | | | Do not delete empty records that carry this flag but store them and schedule them for deletetion. Do not store the flag in the ltdb though, since this is internal only and should not be visible to the client. (This used to be ctdb commit f898ff21fa338358179e79381215b13a6bc77c53)
| * ltdb: add the CTDB_REC_FLAG_AUTOMATIC to the initial header in ctdb_ltdb_fetch()Michael Adam2011-03-141-0/+1
| | | | | | | | | | | | Signals that this record was not created by a client level store. (This used to be ctdb commit 69d34983a37b0324ff7610b8dfdcd8d13bf81c54)
| * ctdb_private.h: add record flag CTDB_REC_FLAG_AUTOMATICMichael Adam2011-03-141-0/+1
| | | | | | | | | | | | | | | | | | This is a flag that shall signa that a record has been automatically generated by ctdb and not by an explicit client store operation. This will be used in the ctdb_ltdb_fetch operation which stores an empty record with default initial header before trying to migrate the record from the dmaster when the record does not exist in the local tdb. (This used to be ctdb commit 46381a3cb58ccc11422af8f7798c80ea8d72294f)
| * ctdb_ltdb_store_server: add ability to send SCHEDULE_FOR_DELETION control to ↵Michael Adam2011-03-141-1/+21
| | | | | | | | | | | | ctdb_ltdb_store. (This used to be ctdb commit ab2711701999a5ecc23a36b3d9ba8e94f92e4c87)
| * ctdb_ltdb_store_server: Improve debug message in ctdb_ltdb_store when store ↵Michael Adam2011-03-141-1/+13
| | | | | | | | | | | | or delete fails. (This used to be ctdb commit 2559b2a45eb11834da3b0e0963e24351c8b7477f)
| * ctdb_ltdb_store_server: always store the data when ctdb_ltdb_store() is ↵Michael Adam2011-03-141-1/+13
| | | | | | | | | | | | | | | | called from the client This also fixes a segfault since ctdb_lmaster uses the vnn_map. (This used to be ctdb commit e58c8f51f27e468897af5210b80e5f5f45c3c4bb)
| * ctdb_ltdb_store_server: implement fastpath vacuuming deletion based on ↵Michael Adam2011-03-141-3/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VACUUM_MIGRATED flag. When the record has been obtained by the lmaster as part of the vacuuming-fetch handler and it is empty and never been migrated with data, then such records are deleted instead of being stored. These records have automatically been deleted when leaving the former dmaster, so that they vanish for good when hitting the lmaster in this way. This will reduces the load on traditional vacuuming. Pair-Programmed-With: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit c9b65f3602f51bcbf0e6d82c12076c31e4aebe38)
| * ctdb_ltdb_store_server: delete an empty record that is safe to delete ↵Michael Adam2011-03-141-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of storing locally. When storing a record that is being migrated off to another node and has never been migrated with data, then we can safely delete it from the local tdb instead of storing the record with empty data. Note: This record is not deleted if we are its lmaster or dmaster. Pair-Programmed-With: Stefan Metzmacher <metze@samba.org> (This used to be ctdb commit 3cca0d4b48325d86de2cb0b44bb7811a30701352)
| * server: Use the ctdb_ltdb_store_server() in the ctdb daemon for ↵Michael Adam2011-03-143-0/+11
| | | | | | | | | | | | | | | | | | non-persistent dbs This is realized by adding a ctdb_ltdb_store_fn function pointer to the db context and filling it in the attach procedure for non-persistent dbs. (This used to be ctdb commit df49ec44de80affa5ccc637dec12a20a26e8706e)
| * server: create a server variant ctdb_ltdb_store_server() of ctdb_ltdb_store().Michael Adam2011-03-141-1/+62
| | | | | | | | | | | | | | | | | | This is supposed to contain logic for deleting records that are safe to delete and scheduling records for deletion. It will be called in server context for non-persistent databases instead of the standard ctdb_ltdb_store() function. (This used to be ctdb commit 23631ffc152486aed9ce5b69a391e52bc4947833)
| * daemon: fill ctdb->ctdbd_pid earlyMichael Adam2011-03-141-0/+1
| | | | | | | | (This used to be ctdb commit 3da1e2e30bf34622f08e6ecd5b8fe55684e5007a)
| * test: send SCHEDULE_FOR_DELETION control from randrec test.Michael Adam2011-03-141-1/+42
| | | | | | | | (This used to be ctdb commit 30aa55b3efc6fbd4078f93da386b6aeb337c1a0c)
| * client: add accessor function ctdb_header_from_record_handle().Michael Adam2011-03-142-0/+11
| | | | | | | | (This used to be ctdb commit cf57efd440ccc3db381386f4749bfcbf8ac5ecae)
| * vacuum: add ctdb_local_schedule_for_deletion()Michael Adam2011-03-142-0/+66
| | | | | | | | (This used to be ctdb commit b70bc141d84f7355d2c6c901961b7366db566980)
| * server: implement a new control SCHEDULE_FOR_DELETION to fill the delete_queue.Michael Adam2011-03-143-0/+86
| | | | | | | | (This used to be ctdb commit 680223074e992b32ccf6f42cb80c3fa93074fee7)
| * control: add a new control opcode CTDB_CONTROL_SCHEDULE_FOR_DELETIONMichael Adam2011-03-141-0/+1
| | | | | | | | (This used to be ctdb commit 4cebfa33db3c7effa087f753530c52b2dd8550e6)
| * control: add macro CHECK_CONTROL_MIN_DATA_SIZE.Michael Adam2011-03-141-0/+8
| | | | | | | | | | | | | | This is for the control dispatcher to check whether the input data has a required minimum size. (This used to be ctdb commit 2038e745db33cc5c3b4e2db8a00a57ede03906a2)
| * vacuum: lower level of hash collision debug message to INFOMichael Adam2011-03-141-1/+1
| | | | | | | | (This used to be ctdb commit b9bdef46fedfbc543263b67cfee3e896773cd8e8)
| * vacuum: add statistics output to the fast and full traverse runs.Michael Adam2011-03-141-5/+102
| | | | | | | | (This used to be ctdb commit 3addd28aa73883b3b05888e309d19db0eb67eab9)
| * vacuum: refactor insert_delete_record_data_into_tree() out of ↵Michael Adam2011-03-141-16/+39
| | | | | | | | | | | | | | | | add_record_to_delete_tree() for reuse in filling the delete_queue. (This used to be ctdb commit 7bbb12695c24da25671f1c39a411295d35870d2c)
| * vacuum: change all Vacuum*Interval tunables to default to 10Michael Adam2011-03-141-3/+3
| | | | | | | | | | | | | | So, by default we have a fastpath vacuuming every 10 seconds and full blown db-traverse vacuuming once every 10 minutes. (This used to be ctdb commit 4f0ace982dbb5b4f9c035dbf4cb0ae74cd18d81b)
| * vacuum: disable full db-traverse vacuuming runs when VacuumFastPathCount == 0Michael Adam2011-03-141-1/+3
| | | | | | | | (This used to be ctdb commit 571683e7c48aeed8ce41c584d016ced7ff0d2e2d)
| * vacuum: Only run full vacuumig (db traverse) every VacuumFastPathCount times.Michael Adam2011-03-141-9/+25
| | | | | | | | (This used to be ctdb commit 23b8c8c5fc8604ee0bd6da1f4b5152277eb5f1c0)
| * vacuum: reset the fast path count in the event handle if it exceeds the limit.Michael Adam2011-03-141-0/+4
| | | | | | | | (This used to be ctdb commit 91e6d36a190b1c9e4c8b18f7833e51c5c9a67574)
| * vacuum: bump the number of fast-path runs in the vacuum child destructorMichael Adam2011-03-141-0/+3
| | | | | | | | (This used to be ctdb commit c0668bfe0bb4e69988ae34d875568d08539e6fb9)
| * vacuum: add a fast_path_count to the vacuum_handle.Michael Adam2011-03-141-0/+1
| | | | | | | | (This used to be ctdb commit 53a39d0cc5ea251c2189ec8178ccb769fa046c43)
| * Add a tunable VacuumFastPathCount.Michael Adam2011-03-142-0/+2
| | | | | | | | | | | | | | | | This will control how many fast-path vacuuming runs wil have to be done, before a full vacuuming will be triggered, i.e. one with a db-traversal. (This used to be ctdb commit 0d997ec7e61a7bee2cb05456f9c7d5e6f7a44797)
| * vacuum: traverse the delete_queue befor traversing the database.Michael Adam2011-03-141-0/+6
| | | | | | | | (This used to be ctdb commit 04c335f9195a5fd83c91a57d06b1e4eaa511844e)
| * vacuum: add delete_queue_traverse() for traversal of the delete_queue.Michael Adam2011-03-141-0/+116
| | | | | | | | (This used to be ctdb commit 5eee05c4d256c08f4ee60a1a69efda6844e39729)
| * vacuum: reduce indentation in add_record_to_delete_tree()Michael Adam2011-03-141-20/+20
| | | | | | | | | | | | This simplyfies the logical structure a bit by using early return. (This used to be ctdb commit 4d32908fdcec120426536a761e1d0be60f076198)
| * vacuum: refactor new add_record_to_delete_tree() out of vacuum_traverse().Michael Adam2011-03-141-35/+45
| | | | | | | | | | | | This will be reused by the traversal of the delete_queue list. (This used to be ctdb commit 4407e5a7fb045ce56b6d902f7116de663ea648cb)
| * vacuum: skip adding records to list of records to send to lmaster on lmasterMichael Adam2011-03-141-4/+7
| | | | | | | | | | | | This list is skipped afterwards when the lists are processed. (This used to be ctdb commit e99834c1a2eea60f7f974c0689ae0a65cfe178ff)
| * vacuum: refactor new add_record_to_vacuum_fetch_list() out of vacuum_traverse().Michael Adam2011-03-141-23/+44
| | | | | | | | | | | | | | | | | | This is the function that fills the list of records to send to each lmaster with the VACUUM_FETCH message. This function will be reused in the traverse function for the delete_queue. (This used to be ctdb commit d4ab790c1f679e833eb97816762fcfcee15ccb10)
| * server: rename ctdb_repack_db() to ctdb_vacuum_and_repack_db()Michael Adam2011-03-141-2/+3
| | | | | | | | (This used to be ctdb commit 6c603f85726d2efac9710af7c4875ded2ca7230e)
| * When wiping a database, clear the delete_queue.Michael Adam2011-03-141-0/+11
| | | | | | | | (This used to be ctdb commit 731a6011ce4a1301f86eacb039955745f2b5d866)
| * vaccum: clear the fast-path vacuuming delete_queue after creating the ↵Michael Adam2011-03-141-0/+11
| | | | | | | | | | | | | | | | vacuuming child. Maybe we should keep a copy for the case that the vacuuming fails? (This used to be ctdb commit f19fe5b45748a6998c6950a5b1db7ec2c4468c1c)
| * When attaching to a non-persistent DB, initialize the delete_queue.Michael Adam2011-03-141-0/+8
| | | | | | | | (This used to be ctdb commit 0aff1b61dd1b683c6739478008a5b014b933df50)
| * Add a delete_queue to the ctdb database context struct.Michael Adam2011-03-141-0/+1
| | | | | | | | | | | | | | | | | | This list will be filled by the client using a new delete control. The list will then be used to implement a fast-path vacuuming that will traverse this list instead of traversing the database. (This used to be ctdb commit 9bbedf786b26bb074f668b31f29a9032af958673)
| * call: becoming dmaster in VACUUM_MIGRATION, set the VACUUM_MIGRATED record flagMichael Adam2011-03-141-1/+14
| | | | | | | | | | | | | | | | | | This temporary flag is used for the local record storage function to decide whether to delete an empty record which has never been migrated with data as part of the fast-path vacuuming process or, or to store the record. (This used to be ctdb commit c11ca778ee90444c44dee0a629cd2eefa3a1f75e)