Chris Browne cbbrowne at lists.slony.info
Fri Nov 19 10:38:46 PST 2010
Update of /home/cvsd/slony1/slony1-www
In directory main.slony.info:/tmp/cvs-serv21414

Added Files:
	Slony 3 Feature Ideas.mm.html 
Removed Files:
	Slony 3 Feature Ideas.html 
Log Message:
Clear out failed attempt to have Purty Picture of proposed ideas,
add in new version of Plain HTML of it


--- Slony 3 Feature Ideas.html DELETED ---

--- NEW FILE: Slony 3 Feature Ideas.mm.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Slony 3 Feature Ideas</title>
<style type="text/css">
    li { list-style: none;  margin: 0; }
    p { margin: 0; }

    span.l { color: red; font-weight: bold; }

    a.mapnode:link {text-decoration: none; color: black; }
    a.mapnode:visited {text-decoration: none; color: black; }
    a.mapnode:active {text-decoration: none; color: black; }
    a.mapnode:hover {text-decoration: none; color: black; background: #eeeee0; }

</style>
<!-- ^ Position is not set to relative / absolute here because of Mozilla -->
</head>
<body>
<p>Slony 3 Feature Ideas
<ul><li>slonik extensions
<ul><li>ABORT
<ul><li>Initially mentioned by Vivek Khera

</li>
<li>Fail if replication is behind
<ul><li>event count

</li>
<li>time interval

</li>

</ul>
</li>
<li>Other Health Criteria
<ul><li>per Chris Browne

</li>
<li>Is node there?

</li>
<li>Is replication set there?

</li>
<li>Is subscription active?

</li>
<li>Run SQL, fail if ERROR

</li>

</ul>
</li>

</ul>
</li>
<li>Implicit WAIT FOR EVENT
<ul><li>Initially mentioned by Chris Browne

</li>

</ul>
</li>
<li>DATE
<ul><li>suggested by Stuart Bishop

</li>
<li>Basically, notion of being able to get timestamps during a Slonik script

</li>

</ul>
</li>
<li>TRY BLOCK
<ul><li>Chris, Stuart conversation

</li>
<li>Perhaps we should forbid running non-transactional commands within a TRY block

</li>
<li>Non-transactional commands
<ul><li>WAIT FOR EVENT

</li>
<li>FAILOVER

</li>
<li>EXECUTE SCRIPT

</li>
<li>STORE NODE

</li>

</ul>
</li>

</ul>
</li>

</ul>
</li>
<li>slon extensions
<ul><li>Slon monitoring
<ul><li>per Chris Browne

</li>
<li>slon records in a queryable form what it's working on

</li>
<li>Requires writing (+COMMIT) at the start of the event loop

</li>

</ul>
</li>
<li>Faster Replication
<ul><li>Use COPY + Triggers on sl_log_*
<ul><li>per Jan Wieck

</li>
<li>New encoding of tuple information

</li>
<li>Triggers do direct heap updates

</li>
<li>Eliminate overhead of parsing each statement

</li>
<li>COPY implicitly introduces streaming
<ul><li>Eliminates need for current memory management logic for processing large tuples

</li>

</ul>
</li>
<li>Should reduce amount of work done by slons to parse sl_log_* cursors, generating I/U/D streams

</li>

</ul>
</li>
<li>SYNC pipelining
<ul><li><p>open 2 connections to source DB, start pulling new data while the previous request is pushing I/U/D requests to the subscriber
<p>Might be unnecessary if using COPY+triggers to stream data
</li>
</ul>
</li>
<li>Compress sequences of DELETE requests
<ul><li>Note that TRUNCATE is already replicated

</li>

</ul>
</li>

</ul>
</li>
<li>SNMP
<ul><li>per Chris Browne

</li>
<li>Some minimal SNMP functionality was added in 2005

</li>
<li>Untouched since; requires --with-netsnmp option to ./Configure

</li>
<li>Should we improve it, or drop it?

</li>

</ul>
</li>

</ul>
</li>
<li>About This Document
<ul><li>Mind Map maintained by Chris Browne

</li>
<li>Using FreeMind

</li>

</ul>
</li>
<li>General Features
<ul><li>Commit timestamps
<ul><li>per Jan Wieck

</li>
<li>Requires PostgreSQL extension

</li>
<li>Eliminates need for periodic generation of SYNC events

</li>
<li>Simplifies queries for searching for sl_log_* data

</li>
<li>Enables carryover of commit times to subscribers

</li>

</ul>
</li>
<li>DDL Triggers
<ul><li>per Jan Wieck

</li>
<li>Requires PostgreSQL extension

</li>
<li>Enables automatic generation of DDL_SCRIPT events

</li>

</ul>
</li>
<li>pull lexxer from postgres
<ul><li>From TODO, probably per Peter Eisentraut

</li>
<li>Note that this may be a fair bit more complex than the code in src/parsestatements

</li>

</ul>
</li>

</ul>
</li>
<li>Bugs Known
<ul><li>#53 - high RAM usage with high table #
<ul><li>Likely involves replacing array with hash table

</li>

</ul>
</li>
<li>#80 - slon daemon restarts itself in a loop after failover

</li>
<li>#81 - duplicate key sl_nodelock-pkey and duplicate slon(8) processes not detected

</li>
<li>#111 - UNSUBSCRIBE SET cancels outstanding SUBSCRIBE SET

</li>
<li>#126 - client side KEEPALIVE on connections

</li>
<li>#137 - EXECUTE SCRIPT not applied in right order
<ul><li>Shift DDL from sl_event to sl_log_(1|2)

</li>

</ul>
</li>
<li>#152 - DDL noisy - might be handled well by "Other Health Criteria" ideas

</li>
<li>#163 - Change to use TIMESTAMPTZ in Slony-defined tables

</li>
<li>Bug #166: Size of SYNC
<ul><li>Useful to ask how much work is involved in particular SYNCs

</li>
<li>Allows evaluating things like
<ul><li>Is this SYNC enormous?

</li>
<li>Is slon busy processing a huge SYNC?

</li>
<li>Alternatively, if SYNC is small, long running SYNC suggests something broken

</li>

</ul>
</li>

</ul>
</li>

</ul>
</li>

</ul></body>
</html>



More information about the Slony1-commit mailing list