8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-30 20:03:03 +01:00
Commit Graph

53 Commits

Author SHA1 Message Date
dimitr
758bb0d936 Fixed CORE-3686: Incorrect (zero) values are reported for "acquire blocks" and "mutex wait" counters in the fb_lock_print output. 2012-04-07 09:41:59 +00:00
alexpeshkoff
4e795f4047 Include platform definitions file common.h in firebird.h. Use OS-specific ThreadId instead artificial FB_THREAD_ID, avoiding unneeded casts in the code. This should fix BSD and MAC ports. 2012-03-01 08:55:43 +00:00
dimitr
3851382b8a Attempted to fix a lock validation bug which ignored a situation where an incompatible request was changed from LRQ_pending to LRQ_rejected but temporarily remained in the queue.
A few other misc changes.
2012-02-13 15:39:51 +00:00
dimitr
e719c87753 Make locks unconditionally granted in the fair order. The legacy behavior is unsafe in the highly loaded systems. 2011-12-23 17:50:44 +00:00
dimitr
498a61af43 Allowed multiple waiting requests per owner. This resolves various crashes and asserts in the SharedDatabase + SharedCache mode. Page-level deadlocks are still expected, the cache manager needs fixing.
Also, made the lock table synchronization a bit stricter. Some refactoring and cleanup was performed as well.
2011-12-23 17:07:33 +00:00
dimitr
18df9a3ab7 Raised the lock table version. Some cleanup. 2011-11-29 08:14:49 +00:00
alexpeshkoff
9dab626467 Frontported fix for CORE-3589: Internal shared resource leak. Make trunk work with SystemV semaphores as shared mutexes/events. 2011-10-13 11:31:15 +00:00
hvlad
fef1f49c94 Shared page cache implementation 2011-05-09 10:15:19 +00:00
hvlad
12ada43e38 Front ported improvement CORE-3323 : Ability to cancel waiting in lock manager
LM part will be changed to not rely on engine internals.
2011-02-02 11:20:52 +00:00
hvlad
460bf9731c Move VALIDATE_LOCK_TABLE from lock.h into lock.cpp : at allows to rebuild just lock.cpp if some need to disable validation of lock table in DEBUG build or enable validation in RELEASE build. 2011-02-01 15:19:01 +00:00
dimitr
2ed04ec8a9 Fixed CORE-3217: Server crashes inside the lock manager when multiple connections attaching/detaching simultaneously. 2010-11-08 10:21:04 +00:00
alexpeshkoff
e05c1a825f Moved some more .h-files to common from jrd as Vlad suggested 2010-10-13 10:39:52 +00:00
alexpeshkoff
2dc25a44bb OSRI and new posix build 2010-10-12 08:02:57 +00:00
robocop
4edd547b17 Misc. 2010-06-30 08:55:16 +00:00
asfernandes
5baf890a21 Misc 2010-06-26 01:18:53 +00:00
alexpeshkoff
6cbefa1f46 Introduced class SharedMemory - base class for everything, using IPC. Related to CORE-3035. 2010-06-25 11:55:11 +00:00
alexpeshkoff
b6c0bbcd41 frontported fix for CORE-3021: Segfault in DEV_BUILD 2010-06-17 07:34:15 +00:00
robocop
b682a6c39c Misc. 2010-04-21 10:41:22 +00:00
alexpeshkoff
88b8a40a04 1. Cleaned up most of SUPERSERVER usage.
SUPERSERVER has 4 different meanings in our code:
- this is milticlient server (replaced with Config::getMultiClientServer())
- use shared data cache (replaced with Config::getSharedCache())
- use shared metadata cache (replaced with macro SHARED_METADATA_CACHE)
- database are NOT shared between processes (replaced with getSharedDatabase())

2. Use fb_smp_server as both superclassic and classic binary on posix
(xinetd autodecection is done).

3. Small posix build cleanup.
2010-04-15 14:40:27 +00:00
alexpeshkoff
e5017f1a12 Extend format of firebird configuration file with a set of additional parameters for any parameter.
Use traditional firebird configuration files format in all places (intl, trace, etc.).
Add per-database configuration facility to aliases.conf (currently 15 parameters from firebird.conf).
2010-02-28 18:00:51 +00:00
asfernandes
e99a07bffd Remove usage of tdbb (and tdbb->tdbb_status_vector) in the lock manager 2009-12-06 01:34:57 +00:00
alexpeshkoff
ecbf4312a1 Implemented CORE-2644: Make lock table expandable on HPUX 2009-09-28 16:03:44 +00:00
dimitr
b3843ebca4 Cleanup. New nbackup internals don't need this code anymore. 2009-08-19 08:07:18 +00:00
robocop
0bf3d11247 Misc. 2009-04-10 14:28:35 +00:00
alexpeshkoff
ab90217604 Better fix for lock files in CORE-2402 2009-04-08 11:30:15 +00:00
alexpeshkoff
1e7898ea22 Fix for CORE-2402: bad permissions on temp files, /tmp is polluted with a lot of files 2009-04-08 11:00:58 +00:00
robocop
5acf561eb6 Get rid of some typedefs. 2009-04-02 08:53:25 +00:00
dimitr
4c9413f8a9 Minor optimizations. 2009-02-11 08:26:55 +00:00
dimitr
1b3927b026 1) Globally named per-database shmem regions.
2) Slightly reworked monitoring internals.
3) Encapsulated the event manager, many internal changes there.
4) Various cleanup, etc.
2009-01-28 12:27:18 +00:00
hvlad
e998ff070f Fixed accidentally brocken POSIX build 2008-10-21 10:37:39 +00:00
alexpeshkoff
e79f55708d 1. Cleanup - use Firebird::Semaphore instead of local events, removed code
related with local events from isc_sync.cpp.

2. Cleanup - removed unused parameter 'number of events' from ISC_event_wait()
and two unused parameters from ISC_event_init().

3. Added SYSV-semaphore based implementation of IPC to isc_sync.cpp.
This should fix CORE-2102: Firebird 2.5 does not build on MacOS (Darwin).

4. Fixed use of posic CS without (x)inetd (i.e. fb_inet_server -s).

5. Fixed (to be reviewed by Dmitry) recovery after some process death in lock manager.
2008-10-10 15:58:05 +00:00
robocop
7d58d35e15 Misc. 2008-06-10 12:10:03 +00:00
robocop
017d04dbfc Misc. 2008-06-10 10:11:39 +00:00
alexpeshkoff
5b465f4159 fixed gcc build 2008-06-09 07:58:15 +00:00
asfernandes
26a79e3c6e Misc 2008-06-09 01:34:33 +00:00
dimitr
ec1d5a91b4 1) Encapsulated the lock manager and integrated it into the engine.
2) Replaced "early" (before LM) checkouts with "late" (inside LM) ones.
3) Removed the mutex protection that's no longer necessary.
Note: the new LM contains some future code (currently commented out) which will be enabled and tested after the Alpha release.
2008-06-07 09:08:16 +00:00
dimitr
49d23b6d22 Major changes in the lock manager, targeted to allow mixed in-process/cross-process working modes. Namely, they are:
1) Separate process and owner blocks. Multiplex blocking signals via single blocking thread.
2) Enable direct in-process AST delivery.
3) Drop PREVENT_OWNER_STARVATION code as not compatible with the new LM structure.
4) Synchronize LM using its own mutex instead of SCH.
5) Implement wakeup'n'remap code for waiting owners.
6) Add more debugging points for memory remaps.
7) Cleanup and style.
Hopefully, this attempt is more POSIX-friendly than my previous one.
2008-02-11 17:30:23 +00:00
robocop
83dc6bde8f Constness 2008-02-02 17:07:37 +00:00
dimitr
956da93e27 Cleanup. 2008-01-17 13:40:35 +00:00
dimitr
48e81dd58a The merge is being fixed. 2008-01-16 12:22:11 +00:00
dimitr
1dd06bb484 The merge continued. 2008-01-16 07:40:12 +00:00
alexpeshkoff
1f77b68e2b 1. Fixed AV when fb_lock_mgr exits.
2. Made timeout in LOCK_manager() 10 times smaller - we are not in year 1993.
2007-08-10 08:59:04 +00:00
alexpeshkoff
8f1bad6558 Moved LCK_OWNER constants to lock, where they are actually used, from jrd 2007-08-10 08:29:32 +00:00
skidder
04b9ec818b NBAK synchronization rework. This should fix CORE-1151 and other Nbackup stability issues 2007-04-24 14:05:46 +00:00
alexpeshkoff
dfef55e991 Fix for CORE-968 - Assertion failure in posix/isc_ipc.cpp 2007-02-22 16:47:39 +00:00
skidder
35b7115d3d Small 64-bitness fixes 2004-05-20 21:58:15 +00:00
robocop
1824343930 Cleanup.
Fixed a linking error with MSVC6, too.
2004-03-28 09:10:30 +00:00
robocop
16cbc204df Cleanup 2003-12-31 05:36:12 +00:00
robocop
9fafc348bf const correctness
vars in scope
minimal interface cleanup
small bug fixes
2003-11-28 06:48:34 +00:00
skidder
77b17de987 NBACKUP-related changes and some clean-up 2003-09-08 20:23:46 +00:00