294 Commits

Author SHA1 Message Date
1333b75981 Dont trow and error on basic relationship query 2024-11-24 20:10:21 +01:00
bf1f5916d7 Can now ADD using a filter 2024-11-24 16:55:54 +01:00
ceab51da27 NewData map now use ConditionValue 2024-11-24 16:26:26 +01:00
23e8ed8709 Changed a bit how the memory work
Now SchemaEngine have an arena at the root of the file. So UUIDFileIndex
can be as big as we want. The idea is nice, maybe I will use it for the
FileEngine too.
2024-11-22 11:03:39 +01:00
3f5c929a11 Big memory improvement
Started to use fixed buffer at the root of each file. I like that
because that mean I can estimate the amount of memory that the app use.

The only thing that still use an non fixed allocator is the
UUIDFileIndex, but I dont like it. I think it should also use a fixed
lenght buffer. But then how can I be sure it is enough ? :/

I mean I get it, I need an allocator here. But if this is the only place
I use one, this a shame
2024-11-20 23:52:36 +01:00
979690fec4 IN filter working
Now if I do like GRAB User { best_friends IN {name = 'Bob'}} it should
work

At least now the condition value is a hashmap with key as UUID.
2024-11-17 21:52:11 +01:00
7b2a754d81 Check if additional data count is reached at each iteration
Before I was checking after the filter.evaluate is true. So I can end up
with the limit reach, but the thread will continue parsing until it find
one that is true, add it and then check if the limit is reach.

Which mean I endup with more than what I want and the thread could stop
before, making things faster.
2024-11-17 20:45:58 +01:00
65ba0263cc Condition value now can have a HashMap of UUID/void 2024-11-17 18:11:54 +01:00
ca5de646d6 Populate the UUIDFileIndex
Now each SchemaStruct have a UUIDFileIndex that allow to find the file
index of where an entity is based on it's UUID
2024-11-17 16:40:12 +01:00
5c8d2b6dc7 Create ThreadEngine
Now the DBEngine have a ThreadEngine that have a pool. Like that it is
always the same pool and I dont create one everytime I run a parseing
methods of the FileEngine
2024-11-17 15:25:54 +01:00
303dc81e2a Created an unused UUIDFileIndex
Created a RadixTree but it is too slow and doest provide that much
reduced memory, mostly because I did it badly. So I will juste use a
small wrapper around an AutoHashMap UUID usize
2024-11-17 00:11:34 +01:00
f1c2bea5c1 Update Docs 2024-11-14 22:32:22 +01:00
ef84200b34 Parsing filter can now parse sub filter, waiting to be use with the parsing to find relationship 2024-11-14 20:39:04 +01:00
6e7d1d150c Pass test with added stuffs for relationship 2024-11-13 22:44:27 +01:00
13cba58dbc Fix 2024-11-12 21:57:13 +01:00
5e9c64caf6 Removed useless code 2024-11-12 21:18:19 +01:00
3a61e81024 Added not in keyword 2024-11-12 21:17:49 +01:00
b1de4a40c3 Moved ZipponData to lib 2024-11-12 21:17:33 +01:00
f5d93c94f6 Created a ThreadSyncContext
This keep the atomic value that are shared by thread
2024-11-12 21:17:06 +01:00
268010fe37 Removed log in testing for now 2024-11-10 17:10:56 +01:00
91b1f61e66 Working new SchemaEngine 2024-11-10 17:10:42 +01:00
dd65f5f03e Typo in docs 2024-11-10 11:41:06 +01:00
e1c957b3b6 Started cleaning by creating a SchemaEngine 2024-11-10 11:38:37 +01:00
1d365adff6 Moved charts inside the python dir 2024-11-09 16:42:21 +01:00
18c55194d5 Moved stuffs to new dir 2024-11-09 16:41:28 +01:00
9fa6f25459 Removed CSV_DELIMITER and some old comment 2024-11-09 16:39:40 +01:00
e5d0a122e1 Added multi threading to delete 2024-11-06 16:04:07 +01:00
65be757440 Added multithreading to update 2024-11-06 16:01:55 +01:00
fbbeb2f40d Updqte Benchmqrk.md 2024-11-04 23:24:49 +01:00
48a3ae4a5d Update Benchmark.md 2024-11-04 23:20:24 +01:00
900b6c5f54 Replace some path_buff to utils.preintOpenDir/File 2024-11-04 23:18:49 +01:00
96e77a5ad4 Removed last trace of null 2024-11-04 22:57:19 +01:00
280b3b3c3a Update docs 2024-11-04 22:52:44 +01:00
b12116c005 Removed uuid_file_index 2024-11-04 22:52:19 +01:00
463df1dc6c Added time for 1 000 000 2024-11-04 22:38:17 +01:00
3cf33fe4f8 Fixed url of chart 2024-11-04 22:13:33 +01:00
2af9f68c5e Added small benchmark 2024-11-04 22:11:56 +01:00
c500c2a23c Fixed wrong condition
Superior was inferior and reverse
2024-11-03 22:43:02 +01:00
3539dd685c Fix, perf ect
- Added a new data type self, that represent the id of the intity itself
- Fixed multi threading for parsing, now each thread use it's own writer
and I concat them at the end
- Added a schemaStruct id to the list
- Other fixe and stuff to go with the rest

New step, multi threading for all function then finally relationship
2024-11-03 19:18:25 +01:00
72b001b72c I think I just added multithreading for GRAB :o
This look like it work, maybe I need to start using a unique Pool for
everything. Maybe keeping it directly inside the FileEngine
2024-11-02 23:47:41 +01:00
dba73ce113 Started to use fixed lenght alloc for performance
For very importatnt stuff like the writter that write data when parsing,
started to use fixed length because it take the majority of the time to
write, not to parse =/

Gonna need to improve that
2024-11-02 22:12:47 +01:00
aaa1cb2589 Added bach updateEntities using zid 2024-11-02 00:22:13 +01:00
0920927bc3 Removed sendUUIDs
Removed the different sendUUIDs and sendUUID function. new writeEntity
use a buffer to write inside like the other stuffs.
2024-11-01 22:23:04 +01:00
a20a60e566 Delete Entities now use ZipponData
Also stopped to parse then delete, now I parse and delete at the same
time for perf issue
2024-11-01 21:17:31 +01:00
bead52df5a Fix 2024-11-01 20:40:18 +01:00
557e4ab064 Return slice when parsing individual value
When I use s2t, or string to type. Like to transform a string array into
an array. "[1 4 21]" to []i32{ 1, 4, 21}.

Before I return an ArrayList, now it use toOwnedSlice
2024-11-01 20:37:19 +01:00
f5a692558b Fixed the bug with additional data 2024-11-01 20:22:37 +01:00
5e1ac7a0d7 Parse and write at the same time
Created a new function to replace parseAndFindUUIDWithFilter.

Now it parse the file, evaluate with the filter and write directly to a
buffer. There is no UUID that is return, then file are parse again.
Should be a huge perf improve.

Some bugs with additionData tho, got a name: "<UUID>" =(
2024-11-01 20:17:45 +01:00
1bcc4465c5 getAllUUIDList now use the index_file_map map 2024-11-01 17:19:24 +01:00
c37999cbfc Added UUID -> File index hash map
SchemaStruct member now are [] and not ArrayList. Started to use and
understand toOwnedSlice.

Implemented the hashmap that keep all UUID -> File index. Inside each
SchemaStruct
2024-11-01 17:10:13 +01:00