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

Deoptimizations in NDB SPI #11

Open
jdduncan opened this issue Nov 4, 2013 · 2 comments
Open

Deoptimizations in NDB SPI #11

jdduncan opened this issue Nov 4, 2013 · 2 comments

Comments

@jdduncan
Copy link
Contributor

jdduncan commented Nov 4, 2013

From node --trace_deopt jscrund --adapter=ndb --spi we see a list of deoptimizations in NDB SPI code:

For Indy:

  • DBOperation
  • DBTableHandler.getFields
  • DBTableHandler.getMappedFieldCount
  • execute
  • stats_incr
  • DBTableHandler.getColumnMetadata
  • DBOperation.prepare
  • allocateRowBuffer
  • completeExecutedOps
  • releaseKeyBuffer

For Each:

  • NdbSession.getTransactionHandler
  • NdbSession.buildInsertOperation
  • proto.execute
  • encodeRowBuffer
  • DBTableHandler.get
  • onExecute
  • getExecIdForOperationList
  • run
  • attachErrorToTransaction
  • exports.closeActiveTransaction
  • begin

For bulk:

  • QueuedAsyncCall.enqueue
@jdduncan
Copy link
Contributor Author

jdduncan commented Nov 4, 2013

DBOperation: In persist(), we call DBOperation with valid tableHandler and null indexHandler. Then we come to find(), where we have a valid indexHandler and null tableHandler. This triggers the deopt. But after this DBOperation() is not deoptimized again.

getFields(): called from NdbOperation with a variety of signatures.

getMappedFieldCount(): deoptimized 3 times. One point is that "this" could be a DBTableHandler or a DBIndexHandler.

getColumnMetadata(): deoptimized 3 times. Again, "this" could be DBIndexHandler or DBTableHandler.

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

No branches or pull requests

1 participant