-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
72 lines (53 loc) · 2.49 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# MyTODO LIST
- make file fix single and all others re unify....
- create compare funciton for 2 tables / generate inserts
- add test for non strict rows
- suspect failing lengths in lexer match other items and excute those
- handle exceptions for testing command statments... with PRE and ACTUAL
- convert output format to return an array based on output_stream. STDIO vs STRING
- update slack bot, disconnect issues? maybe to many reads?
- make docker for slack bot
- make flextable output scale friendly
- Error with flextable scaling when over bounds it go's to 0 padding not calculated
- add minimum scale instead of full width / make it an option
- ddb flask
- jquery ui front end ? npm?
- validate filed are operating on correct path for SVN AND regular testing...
- output more data in test
- named tupel
- __slots__
Notes...
# Tried to convert to GO
- Tried to convert to GO with grumpy
- total failure. some classes worked, others didnt
- failed on importing modules like uuid, which I would have to impliment myself
- I feel my efforts are best left to coding in c/c++, and exporting to python
# Lock errors
- x lock file per unique file path....
- x removed time out, will wait until lock file is removed OR lock file PID is nolonger arround (BLOCKING)
- x lockfiles can be created/edited by any user. 0o777
## Locking and concurency in ddb
ddb performs all operations in a temporary space. This prevents synchronization and concurrency issues.
Nothing occurs to the original data except at the end of a commit cycle on a SUCCESFULL Change.
This is a universal standard best practice.
To do this ddb uses the local temp directory with a NON unique lock file per selected data file.
ddb blocks until the lock is cleared. Internally each ddb engine locked from one instance to another.
Locks are PID/UUID Based.
## AUTO COMMIT
autocommit is selected by default. Thats is to say as in any other database, each query preforms a full begin/commit per query.
This can be changed by explicity using begin/commit/rollback commands, as in other databsaes.
## CRUD WORKFLOW Locking Strategy
- BEGIN Transaction
- WAIT FOR FREE LOCK, OR REMOVE DEAD LOCK
- LOCK original
- COPY original to temp
- CRUD ON TEMP (multiple operations possible)
- ON ROLLBACK (original is untouched)
- DELETE temp
- REMOVE LOCK
- ON COMMIT
- IF temp has diverted from the original
- DELETE original
- COPY temp to original
- DELETE temp
- REMOVE LOCK