Project

General

Profile

Sharding » History » Version 1

Tomislav Pleše, 09/27/2025 01:21 PM

1 1 Tomislav Pleše
# Sharding
2
3
4
Flow: 
5
    HomeScreen -> HomeScreenManager -> ThreadManager -> PointManager | ShardManager
6
7
* current Point = Point/Shard currently in focus on screen
8
* new Point = Point/Shard created when new Prompt sent
9
10
11
**1. Prompt**
12
13
1. 1. Table - code Flow:
14
15
|HomeScreen |HomeScreenManager |ThreadManager |PointManager |Cases: |
16
|--|--|--|--|--|
17
|onPrompt  |handlePropmt  |insertNewPoint  |createNewPoint  |  |
18
|  |  |  |  |1. Start Thread - New Root  |
19
|  |  |  |  |2. Under Regular Point Child  |
20
|  |  |  |  |3. Under Point that is a Shard Child - no Sharding  |
21
22
1. 2. Table - Point/Shard states:
23
24
| | |1. Start Thread - New Root |2. Under Regular Point Child |3. Under Shard Child - no Sharding |
25
|--|--|--|--|--|
26
|new PointDTO  |id |= new id  |= new id  |= new id  |
27
| |parentId  |= new id  |= currentPoint.parentId  |= currentPoint.parentId  |
28
| |parentShardId  |null  |null  |= currentPoint.ShardId  |
29
| |  |  |  |  |
30
|parent ShardDTO |shardPointChildren  |no change  |no change  |= add newPoint.id  |
31
| |  |  |  |  |
32
|parent PointDTO |pointChildren  |no change  |= add new id  |= no chnage  |  
33
34
**2. SubPrompt - Sharding**
35
36
2. 1. Table - code Flow
37
38
|HomeScreen |HomeScreenManager |ThreadManager |ShardManager |Cases: |
39
|--|--|--|--|--|
40
|onSubPrompt  |handleSubPropmt  |insertNewPoint  |createNewPoint  |  |
41
|  |  |  |  |1. Under Regular Point - 1st Sharding  |
42
|  |  |  |  |2. Under Existing Shard - 2nd Sharding  |
43
44
2. 2. Table - Point/Shard states:
45
46
| | |1. Under Regular Point - 1st Sharding |2. Under Existing Shard - 2nd Sharding |Differences  |
47
|--|--|--|--|--|
48
|new PointDTO  |id |= new id  |= new id  |same  |
49
| |parentId  |= currentPoint.id  |= currentPoint.id  |same  |
50
| |parentShardId  |null  |null  |same  |
51
| |  |  |  |  |  |
52
|current ShardDTO |shardId  |= new shardId  |= new shardId  |same  |
53
| |shardPointChildren  |= add newPoint.id  |= add newPoint.id  |same  |
54
| |  |  |  |  |
55
|current PointDTO |shardList  |= add newShardId  |= add newShardId  |same  |
56
| |  |  |  |  |
57
|new PointDTO |parentShardId  |= newShardId  |= newShardId  |same  |
58
| |  |  |  |  |
59
60
61
# **** Important:
62
Difference between 1st and 2nd Sharding:
63
* on 1st Sharding - shardsList = null -> Shard just added to empty list
64
* on 2nd Sharding - shardsList != null -> Shard needs to be inserted into the list at certain index