Orion Henry
684cd7a46c
insert query caching
2022-06-11 15:43:33 +02:00
Orion Henry
0c9e77b644
added a test to ensure we dont break counter serialization
2022-06-09 12:45:20 +02:00
Jerome Gravel-Niquet
b20d04b0f2
serialize Counter with it's current value instead of start value
2022-06-08 14:00:03 -04:00
Andrew Jeffery
a569611d83
Use clock_at for filter_changes
2022-05-26 19:03:09 +01:00
Andrew Jeffery
03a635a926
Extend last_sync_hashes
2022-05-26 19:03:09 +01:00
Andrew Jeffery
97a5144d59
Reduce the amount of shuffling data for changes_to_send
2022-05-26 19:03:09 +01:00
Andrew Jeffery
03289510d6
Remove cloning their_have in sync
2022-05-26 19:03:09 +01:00
Andrew Jeffery
dae6509e13
Update autocommit's apply_changes to take an iterator
2022-05-26 09:02:59 +01:00
Andrew Jeffery
587adf7418
Add Eq to ObjType
2022-05-24 09:48:55 +01:00
Orion Henry
c353abfe4e
Merge pull request #375 from jeffa5/get-changes-opt
...
Get changes opt
2022-05-22 10:30:24 -07:00
Andrew Jeffery
2c1a71e143
Use expect for getting clock
2022-05-20 18:01:46 +01:00
Andrew Jeffery
8b1c3c73cd
Use BTreeSet for sync::State to allow deriving Hash
2022-05-20 16:13:10 +01:00
Andrew Jeffery
3a8e833187
Document num_ops on change
2022-05-20 10:05:08 +01:00
Andrew Jeffery
1355a024a7
Use actor_index to get state in update_history
2022-05-20 10:05:08 +01:00
Andrew Jeffery
e5b527e17d
Remove old functions
2022-05-20 10:05:08 +01:00
Andrew Jeffery
36857e0f6b
Store seq in clock to remove binary_search_by_key
2022-05-20 10:05:08 +01:00
Andrew Jeffery
b7c50e47b9
Just use get_changes_clock
2022-05-20 10:05:08 +01:00
Andrew Jeffery
933bf5ee07
Return an error when getting clock for missing hash
2022-05-20 10:05:08 +01:00
Andrew Jeffery
c2765885fd
Maintain incremental clocks
2022-05-20 10:05:08 +01:00
Andrew Jeffery
5e088ee9e0
Document clock module and add merge function
2022-05-20 10:05:08 +01:00
Andrew Jeffery
1b34892585
Add num_ops to change to quickly get the len
2022-05-20 10:05:08 +01:00
Andrew Jeffery
0de37d292d
Sort change results from clock search
2022-05-20 10:05:08 +01:00
Andrew Jeffery
b9a6b3129f
Add method to get changes by clock
2022-05-20 10:05:08 +01:00
Andrew Jeffery
11fbde47bb
Use HASH_SIZE const in ChangeHash definition
2022-05-20 10:04:32 +01:00
Andrew Jeffery
e8e42b2d16
Remove need to collect hashes when building bloom filter
2022-05-19 10:41:23 +01:00
Andrew Jeffery
6bce8bf4fd
Use vec with capacity when calculating bloom probes
2022-05-19 10:40:44 +01:00
Andrew Jeffery
43c4ce76fb
Optimise seek op with patch
2022-05-16 23:07:45 +01:00
Andrew Jeffery
531e434bf6
Optimise seek op
2022-05-16 22:45:41 +01:00
Jerome Gravel-Niquet
7acb9ed0e2
don't remove last actor when there are none
2022-05-16 10:56:10 -04:00
Orion Henry
f6eca5eec6
Merge pull request #362 from jeffa5/range-rev
...
Add tests and fixes for double ended map range iterator
2022-05-12 09:02:05 -07:00
Andrew Jeffery
f373deba6b
Add length assertion
2022-05-11 21:15:50 +01:00
Andrew Jeffery
8f71ac30a4
Add index info to op_tree panic message
2022-05-11 20:26:39 +01:00
Alex Good
4e431c00a1
Implement OpTreeIter::nth correctly
...
The previous implementation of nth was incorrect, it returned the nth
element of the optree but it did not modify the internal state of the
iterator such that future calls to `next()` were after the nth element.
This commit fixes that.
Signed-off-by: Alex Good <alex@memoryandthought.me>
2022-05-09 23:11:18 +01:00
Andrew Jeffery
28a61f2dcd
Add tests and fixes for double ended map range iterator
2022-05-06 09:49:00 +01:00
Andrew Jeffery
7d5eaa0b7f
Move automerge unit tests to new file for clarity
2022-05-05 14:58:22 +01:00
Andrew Jeffery
5b15a04516
Some tidies
2022-05-05 14:52:01 +01:00
Orion Henry
c43f672924
Merge pull request #356 from automerge/values_range_fix
...
fixed panic in doc.values() - fixed concurrency bugs in range
2022-05-04 10:22:46 -04:00
Orion Henry
fb8f3e5d4e
fixme: performance
2022-05-04 10:09:50 -04:00
Orion Henry
54042bcf96
and unimplemented double ended iterator
2022-05-04 09:50:27 -04:00
Orion Henry
a728b8216b
range -> map_range(), added list_range() values() works on both
2022-05-03 19:27:51 -04:00
Orion Henry
291557a019
Merge pull request #350 from jeffa5/opt-prop
...
Optimise prop query
2022-05-02 14:15:53 -04:00
Orion Henry
bcdc8a2752
fmt
2022-05-02 13:32:59 -04:00
Orion Henry
0d3eb07f3f
fix key/elemid bug and rename range to map_range
2022-05-02 13:30:59 -04:00
Alex Good
7f4460f200
Make the OpSet iterator faster
...
The opset iterator was using `OpTreeInternal::get(index)` to fetch each
successive element of the OpSet. This is pretty slow. We make this much
faster by implementing an iterator which is aware of the internal
structure of the OpTree.
This speeds up the save benchmark by about 10%.
Signed-off-by: Alex Good <alex@memoryandthought.me>
2022-05-01 00:07:39 +01:00
Orion Henry
9e6044c128
fixed panic in doc.values() - fixed concurrency bugs in range
2022-04-29 15:11:07 -04:00
Andrew Jeffery
6bf03e006c
Add ability to skip in tree searches
2022-04-28 14:14:03 +01:00
Andrew Jeffery
c38b49609f
Remove clone from update
...
The cloning of the op was eating up a significant part of the increment
operation's time. This makes it zero-clone and just extracts the fields
needed.
2022-04-28 14:14:03 +01:00
Andrew Jeffery
db280c3d1d
prop: Skip over nodes
2022-04-28 14:14:03 +01:00
Andrew Jeffery
7dfe311aae
Store keys as well as elemids in visible index
2022-04-28 14:14:03 +01:00
Andrew Jeffery
bb4727ac34
Skip empty nodes in prop query
2022-04-28 14:14:03 +01:00