Re: [Zope] Interbase / Cacheing - A thought

2000-06-01 Thread Hannu Krosing

Ian Sparks wrote:
 
 Had a thought that I wanted to share.
 
 Interbase has a feature known as "event alerts". In a trigger you can post
 "events" which are just fixed data strings e.g. "DataAdded" or
 "Insert_tblUsers".

PostgreSQL has them too.

It's not (afaik) supported by DB-API, but could be used in a DA that talks 
to some lower level API.

 A client database connection can register to listen to these events.
 
 I don't know if any Zopeish Interbase access method supports this (ODBC
 doesn't to my knowledge) but it would be incredibly useful for synching
 cached database objects. Zope could hold a representation of the table data
 in cached objects for quick access. Each object could have one or more
 "event" methods which related to a database event. When the database adaptor
 received an event message from Interbase it could inform all objects with a
 matching event method (these methods would refresh their cached data with
 current values from the database).
 
 In this way database and Zope cache could be synced *without* having to poll
 the database at an interval. In all, a very efficient mechanism.

 Just an idea I wanted to put out there.

Thanks for getting it out.

I have been contemplating the same for PostgreSQL but have been too lazy to do 
it myself ;)

--
Hannu

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Interbase / Cacheing - A thought

2000-06-01 Thread Ian Sparks


Hannu,

Does PostgresSQL allow you to have dynamic events? By this I mean can you do
things like :

PostEvent "Update_tblUsers_Record_" + new.RecordID;

I believe that in Interbase the events are compiled into the trigger, not
interpreted at Runtime so you can't have an Interbase event alert you to a
change in a particular record, only that a change has occurred on a table.

Coming from a RDBMS background myself I'd prefer to see RDBMS integration be
tighter to Zope - properties etc being stored in the database where
appropriate. For reasons of speed you don't want to have to go to the DB
each time you want a property but having a data-aware object which knows
when to update itself would solve this problem nicely.

It should also help with load-balancing and failover where you could have a
cluster of Zope instances all working on the same monster DB, all being kept
in sync. via the event alerter mechanism.

Just my thoughts.

- Ian.


- Original Message -
From: "Hannu Krosing" [EMAIL PROTECTED]
To: "Ian Sparks" [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Thursday, June 01, 2000 11:28 AM
Subject: Re: [Zope] Interbase / Cacheing - A thought


Ian Sparks wrote:

 Had a thought that I wanted to share.

 Interbase has a feature known as "event alerts". In a trigger you can post
 "events" which are just fixed data strings e.g. "DataAdded" or
 "Insert_tblUsers".

PostgreSQL has them too.

It's not (afaik) supported by DB-API, but could be used in a DA that talks
to some lower level API.

 A client database connection can register to listen to these events.

 I don't know if any Zopeish Interbase access method supports this (ODBC
 doesn't to my knowledge) but it would be incredibly useful for synching
 cached database objects. Zope could hold a representation of the table
data
 in cached objects for quick access. Each object could have one or more
 "event" methods which related to a database event. When the database
adaptor
 received an event message from Interbase it could inform all objects with
a
 matching event method (these methods would refresh their cached data with
 current values from the database).

 In this way database and Zope cache could be synced *without* having to
poll
 the database at an interval. In all, a very efficient mechanism.

 Just an idea I wanted to put out there.

Thanks for getting it out.

I have been contemplating the same for PostgreSQL but have been too lazy to
do
it myself ;)

--
Hannu

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )





___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Interbase / Cacheing - A thought

2000-06-01 Thread Cary O'Brien

 Ian Sparks wrote:
  
  Had a thought that I wanted to share.
  
  Interbase has a feature known as "event alerts". In a trigger you can post
  "events" which are just fixed data strings e.g. "DataAdded" or
  "Insert_tblUsers".
 
 PostgreSQL has them too.
 
 It's not (afaik) supported by DB-API, but could be used in a DA that talks 
 to some lower level API.
 

They are supported by the TCL interface that comes with PostgreSQL 
(src/interfaces/libpgtcl in the PostgreSQL source tree) if you are
looking for examples of how they work.  (Search for listen and
notify in pgtclCmds.c

-- cary


  A client database connection can register to listen to these events.
  
  I don't know if any Zopeish Interbase access method supports this (ODBC
  doesn't to my knowledge) but it would be incredibly useful for synching
  cached database objects. Zope could hold a representation of the table data
  in cached objects for quick access. Each object could have one or more
  "event" methods which related to a database event. When the database adaptor
  received an event message from Interbase it could inform all objects with a
  matching event method (these methods would refresh their cached data with
  current values from the database).
  
  In this way database and Zope cache could be synced *without* having to poll
  the database at an interval. In all, a very efficient mechanism.
 
  Just an idea I wanted to put out there.
 
 Thanks for getting it out.
 
 I have been contemplating the same for PostgreSQL but have been too lazy to do 
 it myself ;)
 
 --
 Hannu
 
 --__--__--
 


___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Interbase / Cacheing - A thought

2000-06-01 Thread Hannu Krosing

Cary O'Brien wrote:
 
  Ian Sparks wrote:
  
   Had a thought that I wanted to share.
  
   Interbase has a feature known as "event alerts". In a trigger you can post
   "events" which are just fixed data strings e.g. "DataAdded" or
   "Insert_tblUsers".
 
  PostgreSQL has them too.
 
  It's not (afaik) supported by DB-API, but could be used in a DA that talks
  to some lower level API.
 
 
 They are supported by the TCL interface that comes with PostgreSQL
 (src/interfaces/libpgtcl in the PostgreSQL source tree) if you are
 looking for examples of how they work.  (Search for listen and
 notify in pgtclCmds.c
 

The lower level python interfaces (_pg, pg) support them too.

-
Hannu

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Interbase / Cacheing - A thought

2000-06-01 Thread Hannu Krosing

Ian Sparks wrote:
 
 Hannu,
 
 Does PostgresSQL allow you to have dynamic events? By this I mean can you do
 things like :
 
 PostEvent "Update_tblUsers_Record_" + new.RecordID;

No, but it may change sometime (possibly soon) as PostgreSQL is an
open-source
product ...

 I believe that in Interbase the events are compiled into the trigger, not
 interpreted at Runtime so you can't have an Interbase event alert you to a
 change in a particular record, only that a change has occurred on a table.

The same is true for postgrSQL, only the syntax is LISTEN/NOTIFY.


Hannu

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )