From: Samofatov, N. <Nickolay@BroadViewSoftware.com> - 2004-03-07 02:09:29
|
Hi, All! One of the goals for Firebird 2.0 is enhanced monitoring and management functionality. First of all, I'd like to collect information about most current situation in this area. Namely I need state on following topics, 1) Temporary tables 2) Request cancellation in multi-threaded process 3) Request cancellation in a response to lock manager AST Here is how I see the core design of state monitoring functionality: 1) we teach engine process to dump its state to a file in response to signal. By state I mean data of attachments, requests, pools, memory block headers, etc. For mixed multi-process/multi-threaded engine (like Vulcan targets) we may create dedicated thread waiting for this signal. 2) Monitoring tables are in almost all aspects normal temp tables except they have some VIO handlers like system tables have. When they are accessed engine requests dumps for all Firebird processes via sending signals to them and when dumps are ready or timeout occurs loads this data into temporary tables for user consumption. Another part of work in this area is to log performance data for databases (timings of requests, memory usage, IO statistics, etc). While logging itself is simple even in multi-process case, the question is about user interface (temp tables, sql, procedures, etc) for getting data and good way to specify filters for events to log. Ideas in this area would be very much appreciated. Since the amount of functionality above is not small I think the following is true: 1) we need to do some proof-of-concept implementations 2) we need design specifications 3) it may be treated as a set of loosely coupled tasks implemented by different developers For example, if Dmitry implements async request cancel API for SS, I may consult him or add support for this functionality in multi-process (CS) case relatively easily since I have lots of recent experience abasing lock manager. This area of interest has now relatively high priority for me (as a BroadView assignment). Nickolay Samofatov |