← Back to team overview

maria-discuss team mailing list archive

Double linked list


hi guys, i'm with some doibts...
I'm trying to replicate a double linked list, my information is:
1) insert at position xxx (and move others to next position)
2) update position yyyy
3) change position zzz with www
4) delete position xxxx to vvvv

5) return all positions
6) return positions with value > zzz

My doubt is...
I have only one writer and many many readers, writer can't be blocked for
more than 1-3 seconds

Some times i need to read history (functions 1 to 6) and recreate the
linked list at a point in time

List is something like:
Position - json structure (arraylist in c#) like

It update very fast, minimal update interval is 0.001second (max of
1000updates per second) for each list

I will have 100-2000 lists

Doubts :

1) Whats the best method to create the current double linked list? (The
list positioned at last operatiom)
A memory table? A row level lock table? A cache solution (memcached) with
only one key-value and value with the full list?

2) considering a table:
2.1)what the best method to change position? Update set position=if() where
position in (xxx, yyy)
In this case what should be the primary key? If i use positionas primary
key in this update i cam have non unique values...

2.2) ehat to do with delete/inserts?
Insert+update positions?
Delete+update positions?

3) any idea if oqgraph could solve this or if there's a storage engine
solving this problem?

Thanks guys :)

Roberto Spadim
SPAEmpresarial - Software ERP
Eng. Automação e Controle