Re: distibuted transactions, SQL+XPath+XTree

From: Dmitry Turin <socialogy(at)narod(dot)ru>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: distibuted transactions, SQL+XPath+XTree
Date: 2008-02-20 12:28:53
Message-ID: 17624598812.20080220142853@narod.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Richard,

>> I see the following business opportunity for Postgres:
>> I) Simple man can't program middleware to connect XML-client and
>> Postgres.
RH> Aha! still trying to push an XML command system and http server into the
RH> backend.

Yes.

>> II) Request into several databases does not exist.
RH> what you do with cross-database dependencies

As i understand, you are saying about inter-database FK

connect address www.default.bz;
create nick db1 address www.site.com;
create nick db2 address www.data.net;

connect addr=“www.data.net” user=“Smith” pwd=“qxuwb”;
create table b (
b1 xml,
b2 number,
b3 xml
);

connect addr=“www.site.com” user=“Tomson” pwd=“ncwhif”;
create table a (
a1 number references db1:b(@b1/k/m/@m1),
a2 xml, foreign key (@a2/p/q/@q1) references db1:b(@b2),
a3 xml, foreign key (@a3/p/q/@q1) references db1:b(@b3/k/m/@m1)
);

e.g. slides #75-76 in http://sql50.euro.ru/sql5.11.3.ppt ?
There are two case, which i'm naming
'set' ( a<= b, slide #93-94) and
'relay-rece' ( a => b , slide #95-98).
I propose to not try all "second" database, i.e. to not use
reference from "second" database to "first" database (case of 'set').
Case 'relay-race' works clearly.

Of course, i raise question about designation of interbase FK in
modellers (slide #105).

>> III) Notebooks need several switching-on and switching-off during
>> transaction.
RH> How are you dealing with the locking issues?

I propose to freeze transaction (#118):

create user u identified by p waited 1.0/0; -- yy.mm.dd/hh.mm.ss;
freeze; -- like disconnect
-----
<?res code=0 frozen=7482 ?> <!-- from ‘default.edu’ -->
<?res code=0 frozen=8726 ?> <!-- from ‘site.com’ -->
<?res code=0 frozen=9278 ?> <!-- from ‘data.net’ -->
<?res code=0 frozen=3825 ?> <!-- from ‘data.net’: second transaction -->
<?res code=0 frozen=6384 ?> <!-- from ‘store.org’ -->
<?res code=6 ?> <!-- from ‘place.ws’: database is broken -->

unfreeze addr=site.com user=Tomson pwd=ncwhif safe=8726; -- like ‘connect’
unfreeze addr=data.net user=Smith pwd=qxuwb safe=9278;

P.S.
Of course, i propose possibility to freeze failed commit (#120).

>> IV) Distance between strings are not supported, that makes
>> aproximate searching impossible.
RH> Would that be "not supported" in the sense of "contrib/fuzzystrmatch"?

I propose
1) to use Levenshtein distance recursively:
for letters in words, for words in phrases (separated by marks of
punctuation), for phrases (e.g. sentances) in string
2) to count convolutions (several words into abbreviation, and back)

>> V) There is no possibility to hide some (not all) records of table,
>> granted to other users, from these users
RH> Apart from views

depending of user, which look in view

RH> or the veil pgfoundry project of course.

I'm not understanding, clarify, please.

>> I ask you to implement these solutions, that Postgres get
>> advantage before other DBMS-es. I have prepered several drawing
>> http://sql50.euro.ru/sql5.11.3.ppt to explain ideas.
>> More details are described below.
RH> Were you looking to hire developers, or do you have customers who are
RH> looking to hire developers?

Neither this, nor that.
I'm looking for volunteers.

P.S.
I'm also seggesting to implement

1) restricted table for stream processing:

create table a (
a1 number,
a2 number
) size 5;
create table aa (…);
-- resize a to 10;
-- resize a to infinity;
-- redirect a to aa;

create table a (
a1 number,
a2 number
) size 5 direct aa;

2) timer:

create timer TimerName
start yy.mm.dd/hh.mm.ss
end yy.mm.dd/hh.mm.ss
schedule (yy.mm.dd/hh.mm.ss, yy.mm.dd/hh.mm.ss, …)
per yy.mm.dd/hh.mm.ss
as begin … end;
create timer t1 schedule (01/0, 03/0, 10/0) per 01.00/0 as … ;
-- 1-st, 3-rd, 10-th day of each month
create timer t2 schedule (0/0.05, 0/0.10, 0/0.20) per 0/01 as … ;
-- 5-, 10-, 20-th minutes of each hour
create timer t3 schedule (0) per 1/0 as … ;
-- each day

Dmitry Turin
SQL5 (5.11.3) http://sql50.euro.ru
HTML6 (6. 5.4) http://html60.euro.ru
Unicode7 (7. 2.1) http://unicode70.euro.ru
Computer2 (2. 0.2) http://computer20.euro.ru

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2008-02-20 12:36:43 Re: Permanent settings
Previous Message Gregory Stark 2008-02-20 12:26:32 More char()/ascii()