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

Implement UUID parsing with state machine. #222

Closed
1 of 3 tasks
rmichela opened this issue Jun 20, 2019 · 5 comments
Closed
1 of 3 tasks

Implement UUID parsing with state machine. #222

rmichela opened this issue Jun 20, 2019 · 5 comments
Labels
C++ C++ language support Enhancement Extend or improve functionality Go Go language support GoGo [DEPRECATED] Gogo plugin support [DEPRECATED] Good First Issue Newcomer-friendly issue Java Java/JVM language support

Comments

@rmichela
Copy link
Contributor

rmichela commented Jun 20, 2019

As discussed in #217, the implementation of UUID matching is sub-optimal because it uses a hard coded constant regex string passed to a regex library. Significant performance gains can be achieved by replacing constant regex expressions with bespoke state machines.

This work is worth doing because UUIDs are so common in distributed systems and PGV sits on the hot path of every service request.

  • Java
  • Go
  • C++
@rmichela rmichela added Enhancement Extend or improve functionality Good First Issue Newcomer-friendly issue Go Go language support GoGo [DEPRECATED] Gogo plugin support [DEPRECATED] Java Java/JVM language support labels Jun 20, 2019
@rmichela rmichela changed the title Implement UUID parsing with finite state machine. Implement UUID parsing with state machine. Jun 20, 2019
@Fleshgrinder
Copy link
Contributor

I’ll take a stab at this. 😊

@akonradi
Copy link
Contributor

@Fleshgrinder awesome, thanks! Once you finish this, we should be able to port your implementation to C++ without too much trouble.

@Fleshgrinder
Copy link
Contributor

I actually planned to provide C++, Go, and Java. Java is already done and Go also almost.

@rmichela
Copy link
Contributor Author

@Fleshgrinder Were you able to make any progress on your Go and C++ implementations?

@rodaine rodaine added the C++ C++ language support label Jul 26, 2019
@Fleshgrinder
Copy link
Contributor

I'm currently entangled in a project at work that requires all my attention and thus did not have time to progress here. Feel free to take over and get it done if you do not want to wait for me but I have not forgotten about this and it is at the top of my OSS TODO list. 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++ C++ language support Enhancement Extend or improve functionality Go Go language support GoGo [DEPRECATED] Gogo plugin support [DEPRECATED] Good First Issue Newcomer-friendly issue Java Java/JVM language support
Projects
None yet
Development

No branches or pull requests

5 participants