Skip to content

Document all 'bug compatibility' features in impl/memory #46

@riannucci

Description

@riannucci

@danjacques

There's a lot of weird undocumented stuff in impl/memory which was added after discovering that behavior in production. It would be great to be able to pull each weird thing out into a tiny 'documentation app' which uses the stock go SDK to form a minimal test case which can be uploaded to an appspot instance to demonstrate the bug/limitation. This would also help us remove these weird things when they eventually get fixed (since the goal of impl/memory is to provide an as-accurate-as-possible replication of the production behavior as possible).

Some examples of this include:

  • limits on # entities modified in a transaction
  • discrepancy between unset namespace and "" namespace in some APIs (like datastore_v3.RunQuery)
  • oddball combinations of Query parameters which don't work/behave in surprising ways
  • limits on # simultaneously modifiable entities in e.g. PutMulti
  • maximum RPC size limits
  • etc.

Note that impl/memory currently doesn't implement some of these, as it doesn't actually implement the RPC middleman. If we fix #23, some of these will become more pertinent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions