Argos collector (map_v3)#185
Open
colby-nyce wants to merge 428 commits into
Open
Conversation
…writeBuffer APIs to support tracing events
…d run_value_compare functions, removing redundant code and improving maintainability.
…ability and clarity in trace records
…. Added checks to prevent duplicate heartbeats for already emitted CIDs and introduced a new PendingFieldTraceSink class for better field event tracking.
…e writeBin methods to support tracing. Clear curr_pair_field_events on writePairs_ to ensure accurate event recording.
…ement fixed byte size calculation for DataTypeNode in Collectables. Enhance collectable interface with new trace methods for improved serialization and container handling.
Collaborator
|
Here are the latest performance numbers compared to the legacy collector:
Further perf improvements probably have to wait until the pair collector code from Sparta is moved to SimDB, as nothing really stands out as worth the effort right now. |
Comment on lines
78
to
90
| for j, field_name in enumerate(self.visible_field_names): | ||
| self.grid.SetCellValue(idx, j, str(row_data[field_name])) | ||
| self.grid.SetCellValue(idx, j, str(row_data[j][1])) | ||
| if auto_colorize_col_idx is not None: | ||
| color = widget_renderer.GetAutoColor(row_data[self.visible_field_names[auto_colorize_col_idx]]) | ||
| auto_colorize_col_name = self.visible_field_names[auto_colorize_col_idx] | ||
| color_keyval = None | ||
| for key, keyval in row_data: | ||
| if key == auto_colorize_col_name: | ||
| color_keyval = keyval | ||
| break | ||
|
|
||
| assert color_keyval is not None | ||
| color = widget_renderer.GetAutoColor(color_keyval) | ||
| self.grid.SetCellBackgroundColour(idx, j, color) |
Comment on lines
+140
to
+157
| for row in raw_rows: | ||
| nid, sid, name, type_name, special_formatter = row | ||
| enum_back = None | ||
| if type_name in SimpleDeserializer.CONVERTERS: | ||
| kind = "pod" | ||
| elif type_name == "string": | ||
| kind = "pod" | ||
| elif type_name != "dynamic": | ||
| kind = "enum" | ||
| if type_name not in enum_defns: | ||
| # All this means is that we never ended up collecting | ||
| # anything that uses this enum. All of the enum int:str | ||
| # mappings are figured out only when first seen during | ||
| # collection. | ||
| enum_defns[type_name] = {} | ||
| else: | ||
| enum_back = enum_backings.get(type_name) | ||
|
|
Comment on lines
+13
to
+18
| def GetString(self, string_id, must_exist=False): | ||
| if string_id in self._strings_by_id: | ||
| return self._strings_by_id[string_id] | ||
| if must_exist: | ||
| raise Exception(f'String ID does not exist: {string_id}') | ||
| return None |
Comment on lines
+42
to
+45
| void append(const bool val) { append(static_cast<uint8_t>(val)); } | ||
|
|
||
| void append(const std::string& s) { append(tiny_strings_->getStringID(s)); } | ||
|
|
Comment on lines
+305
to
+308
| except Exception as ex: | ||
| print (f"Error loading user settings. Deleting settings file. Error: '{ex}'") | ||
| os.remove(settings_file) | ||
| self.__ResetDefaultViewSettings() |
Collaborator
|
After more delta encodings were added in commit Runtime was not affected since delta encoding is done on the pipeline's background threads. The encoder thread is still sleeping 67% of the time, so we can add more compression algos later. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ArgosArch.pptx
Since this is a very large PR, please review the files in the following order. If you want to review the easy files first, these are standalone utilities/changes without much Argos context:
Timestamps.hpp
StreamBuffer.hpp
CollectedData.hpp
Dump.hpp
Compress.hpp
TypeTraits.hpp
ValidValue.hpp
TinyStrings.hpp
Now getting into the core changes...
PipelineDataTypes.hpp
PipelineStagerInterface.hpp
EntryPoint.hpp
ArgosCollector.hpp
Checkpointer.hpp
Checkpoint.hpp
CheckpointDeltas.hpp
CheckpointEncodings.hpp
blob_handlers.py
blob_iterator.py
Don't really need to review the rest of the python code.
test/argos/*