Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MCOL-2089 - pipelining for mcsimport #33

Closed
wants to merge 11 commits into from
Closed

MCOL-2089 - pipelining for mcsimport #33

wants to merge 11 commits into from

Conversation

sneJ-
Copy link
Contributor

@sneJ- sneJ- commented Feb 15, 2019

Made mcsimport multi threaded.
One thread reads the csv file, one file parses it into csv fields, and one thread writes the csv fields to CS.
They communicate through 2 FiFo queues implemented utilizing ring buffers.

Performance gain is around 25% compared to the single threaded 1.2.2 implementation of mcsimport.
Used the test suite's load_test_2 (1.2GiB CSV file) as reference.
On the downside of using more threads and buffers the implementation now consumes around 10 times more RAM and 1.5 times more CPU cycles.

Test suite successfully executed on Windows 10 against a remote CS 1.2.2-1 instance on CentOS 7.

first draft of multi-threaded implementation
still slower than single threaded mostly due to blocking data-structures and mutexes
all tests passed on Windows 10
internal datastructure changed to two ring buffers to avoid locking
performance gain in load_test_2 compared to 1.2.2 around 20%
test suite passed on Windows 10 against a remote CS 1.2 on CentOS 7
- added comments
- tests on Windows 10 passed
@sneJ- sneJ- requested a review from LinuxJedi February 15, 2019 19:15
@sneJ-
Copy link
Contributor Author

sneJ- commented Mar 8, 2019

closed in favour of PR34

@sneJ- sneJ- closed this Mar 8, 2019
@sneJ- sneJ- deleted the MCOL-2089 branch March 8, 2019 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants