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
0-[0,1,2,4,5]
1-[2.3,4,8,0]

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