You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by hi...@apache.org on 2017/02/14 19:32:08 UTC

[35/50] [abbrv] geode git commit: GEODE-2282: Provide ability to sort field while creating pdxType for jSON document (Need to document system property) This closes #366

GEODE-2282: Provide ability to sort field while creating pdxType for jSON document (Need to document system property)
This closes #366


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/0a1f7624
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/0a1f7624
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/0a1f7624

Branch: refs/heads/master
Commit: 0a1f7624892c2b9e831f5fa710162bff385be83a
Parents: ca9cfd4
Author: Dave Barnes <db...@pivotal.io>
Authored: Thu Jan 26 14:43:36 2017 -0800
Committer: Dave Barnes <db...@pivotal.io>
Committed: Thu Jan 26 15:44:58 2017 -0800

----------------------------------------------------------------------
 .../jsonformatter_pdxinstances.html.md.erb             | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/0a1f7624/geode-docs/developing/data_serialization/jsonformatter_pdxinstances.html.md.erb
----------------------------------------------------------------------
diff --git a/geode-docs/developing/data_serialization/jsonformatter_pdxinstances.html.md.erb b/geode-docs/developing/data_serialization/jsonformatter_pdxinstances.html.md.erb
index d5397ed..b2abfb6 100644
--- a/geode-docs/developing/data_serialization/jsonformatter_pdxinstances.html.md.erb
+++ b/geode-docs/developing/data_serialization/jsonformatter_pdxinstances.html.md.erb
@@ -21,7 +21,7 @@ limitations under the License.
 
 The `JSONFormatter` API allows you to put JSON formatted documents into regions and retrieve them later by storing the documents internally as PdxInstances.
 
-Geode now supports the use of JSON formatted documents natively. When you add a JSON document to a Geode cache, you call the JSONFormatter APIs to transform them into the PDX format (as a `PdxInstance`), which enables Geode to understand the JSON document at a field level.
+Geode supports the use of JSON formatted documents natively. When you add a JSON document to a Geode cache, you call the JSONFormatter APIs to transform them into the PDX format (as a `PdxInstance`), which enables Geode to understand the JSON document at a field level.
 
 In terms of querying and indexing, because the documents are stored internally as PDX, applications can index on any field contained inside the JSON document including any nested field (within JSON objects or JSON arrays.) Any queries run on these stored documents will return PdxInstances as results. To update a JSON document stored in Geode , you can execute a function on the PdxInstance.
 
@@ -44,3 +44,14 @@ After executing a Geode query or calling `region.get`, you can use the following
 -   `toJSONByteArray`. Reads a PdxInstance and returns a JSON byte array.
 
 For more information on using the JSONFormatter, see the Java API documentation for `org.apache.geode.pdx.JSONFormatter`.
+
+# Sorting Behavior of Serialized JSON Fields
+
+By default, Geode serialization creates a unique pdx typeID for each unique JSON document, even if the
+only difference between the JSON documents is the order in which their fields are specified. 
+
+If you prefer that JSON documents which differ only in the order in which their fields are specified
+map to the same typeID, set the property `gemfire.pdx.mapper.sort-json-field-names` to `true`. This
+tells the system to sort the JSON fields prior to serialization, allowing the system to identify
+matching entries, and helps reduce the number of pdx typeIDs that are generated by the serialization
+mechanism.